CPU는 어떻게 설계됩니까?


21

나는 얼마 전에 전자 장치를 가지고 놀기 시작했고 트랜지스터를 사용하여 간단한 논리 게이트를 만들었습니다. 현대의 집적 회로가 트랜지스터 트랜지스터 논리 대신 CMOS를 사용한다는 것을 알고 있습니다. 내가 궁금하게 생각할 수없는 것은 CPU가 어떻게 설계되었는지입니다.

디자인은 여전히 ​​하위 로직 게이트 수준에서 이루어 졌습니까? 아니면 더 이상 그 영역에 혁신이없고 더 높은 추상화 수준으로 넘어 갔습니까? 나는 ALU가 어떻게 구축되는지 이해하지만 그보다 CPU에 더 많은 것이 있습니다.

수십억 개의 트랜지스터를위한 디자인은 어디에서 오는가? 그것들은 대부분 소프트웨어에 의해 자동으로 생성됩니까 아니면 수동 최적화가 여전히 많이 있습니까?


2
Verilog 또는 VHDL이라고 말하고 싶습니다.
avakar

3
이러한 주제는 흥미롭지 만 "실제로 발생하는 실제 문제를 바탕으로 실용적이고 대답 할 수있는 질문"과 는 거리가 먼 것 같습니다 . 또한이 질문에 답하는 책 전체를 상상할 수 있습니다.
Martin

1
@Overv, 함께 연결하는 기본 블록이 게이트 수준에서 최적화되었는지 확인한 다음 최적화 된 블록을 최적화 된 방식으로 연결하면됩니다.
Kortuk

13
다시 열기로 투표했습니다. "전체 CPU를 처음부터 새로 작성하기 위해 알아야 할 모든 것"이이 사이트에 적합하지 않다는 완전한 답변은이 사이트에 적합하지 않다는 데 동의합니다. 간단한 개요와 몇 가지 링크 는 좋은 대답입니다.
davidcary

1
반도체 산업에서 일하는 사람들이 더 복잡한 ASIC 디자인에 대해 언급 할 수있는 사람이 없다는 것에 놀랐습니다. 나는 전문가가 아니기 때문에 이것은 내가 들었던 것입니다. IP 코어에는 많은 라이센스가 있으며, IP 코어가 모두 합쳐진 분야를 VLSI라고합니다. 저는 VHDL / Verilog에서 고도로 최적화 된 합성 툴을 사용하여 디자인을했다고 생각합니다. 이것이 웨이퍼 수준으로 내려 가고 제조되는 방법은 제가 아는 것 이상입니다.
Jon L

답변:


10

CPU 및 SoC는 Verilog 및 VHDL (두 개의 주요 플레이어)과 같은 하드웨어 설명 언어에서 사용됩니다.

이 언어들은 서로 다른 수준의 추상화를 허용합니다. VHDL에서는 논리 블록을 엔티티로 정의 할 수 있습니다. 입력 및 출력 포트를 포함합니다. 블록 내에서 필요한 논리를 정의 할 수 있습니다. 입력 A, 입력 B 및 출력 C로 블록을 정의한다고 가정하십시오. C = A 및 B;를 쉽게 작성할 수 있으며 기본적으로 AND 포트 블록을 작성했습니다. 이것은 아마도 가장 간단한 블록 일 것입니다.

디지털 시스템은 일반적으로 강력한 계층 구조로 설계됩니다. CPU에 필요한 주요 기능인 프로세서 (여러 개의) 메모리, PCI-Express 및 기타 버스로 '최상위'를 시작할 수 있습니다. 이 레벨 내에서 버스와 메모리와 프로세서 간의 통신 신호는 이미 정의되어있을 수 있습니다.

한 단계 아래로 내려 가면 '일'을 만드는 내부 작업을 정의합니다. 마이크로 컨트롤러의 예로, UART 인터페이스가 포함될 수 있습니다. 기능적 UART를 만드는 데 필요한 실제 논리는 한 수준 아래로 정의됩니다. 여기에서 필요한 클록, 버퍼 데이터 (FIFO 버퍼),보고 데이터를 CPU (일부 버스의 종류)로 생성 및 분할하는 데 많은 다른 논리가 필요할 수 있습니다. 체계).

VHDL과 디지털 디자인의 흥미로운 점은 블록의 재사용입니다. 예를 들어, 최상위에 UART 블록을 복사하여 붙여 넣기하여 2 개의 UART를 만들 수 있습니다 (UART 블록이 어드레싱 할 수있는 경우에만 쉽지는 않습니다).

이 디자인은 어떤 종류의 게이트 레벨 디자인도 아닙니다. VHDL은 최종적으로 논리 게이트로 변환되는 방식으로 '컴파일'될 수도 있습니다. 기계는 이것을 인간보다 훨씬 더 잘 최적화 할 수 있습니다. 예를 들어; 블록 A의 내부에는 신호를 출력하기 전에 인버터가 필요합니다. 블록 B는이 출력 신호를 받아서 다시 한 번 반전시킵니다. 글쎄, 직렬로 연결된 2 대의 인버터가별로 좋지 않습니까? 맞습니다. 그래서 당신은 그것들을 그냥 내버려 둘 수 있습니다. 그러나 '최상위'설계에서는 두 개의 인버터를 직렬로 확인할 수 없습니다. 두 개의 포트만 연결되어 있습니다. 컴파일러는 이것을 인간보다 훨씬 빨리 최적화 할 수 있습니다.

기본적으로 디지털 시스템 설계에 포함되는 것은 논리가 어떻게 동작해야하는지에 대한 설명이며, 컴퓨터는 개별 논리 게이트를 배치하는 가장 효율적인 방법을 파악하는 데 사용됩니다.


소프트웨어에 어셈블리 코드를위한 장소가있는 것처럼 하위 수준의 하드웨어 설계는 경우에 따라 비용 효과적 일 수 있습니다. 예를 들어, SRAM 셀은 종종 매우 일반적으로 사용되므로 밀도 (최종 수준 캐시), 액세스 대기 시간 (L1 캐시) 또는 기타 특성, 특히 인텔과 같은 통합 디자인 제조업체에서 최적화하기 위해 고도로 최적화 된 디자인이 개발됩니다.
Paul A. Clayton

@Paul의 흥미를 끄는 질문은 인텔이 디자인을 수동으로 최적화하는 데 얼마나 많은 비용을 투자하고 동적으로보다 일반적으로 동일한 성능 향상을 달성하는 소프트웨어 최적화 패스를 작성하는 것입니다.
Ponkadoodle

6

이전 주석을 단순화하고 확장하고 필요한 것으로 보이는 사람들을위한 점을 연결하겠습니다.

설계는 여전히 하위 로직 게이트 수준에서 이루어 집니까?

디자인은 여러 수준에서 수행되며 하위 논리 수준은 항상 다릅니다 . 각 제조 수축은 트랜지스터의 구조가 변경되고 형상도 변경되어 원자 수준으로 축소되고 2 진 단계 당 비용이 $ 십억에이를 때마다 수십억 달러로 감소함에 따라 가장 뛰어난 물리, 화학 및 리소그래피 공정 경험이 필요합니다 크기. 14 나노 지오메트리를 달성하는 것은 R & D, 프로세스 제어 및 관리 분야에서 엄청난 사업이며 여전히 과소 평가입니다!여기에 이미지 설명을 입력하십시오

예를 들어이를 위해 필요한 직무 기술은 다음과 같습니다. - "FET, 셀 및 블록 레벨 사용자 정의 레이아웃, FUB 레벨 평면도, 추상 뷰 생성, RC 추출 및 기생 추출, 정적 타이밍, 와이어로드를 포함한 물리적 설계 개발 단계를 사용하여 회로도에 대한 검증 및 디버그 모델, 시계 생성, 맞춤형 다각형 편집, 자동 배치 및 경로 알고리즘, 평면도, 풀칩 어셈블리, 패키징 및 검증. "

-더 이상 그 분야에 혁신이 많지 않습니까? -틀린-무어의 법칙과 특허 수로 판단 할 때 반도체 물리학에 상당한 자금이 투입된 혁신이 멈추지 않을 것입니다. 전력, 열 및 능력의 절약은 매번 지불합니다.

-더 높은 추상화 수준으로 넘어 갔습니까? -움직이지 않았다. -더 많은 코어에 대한 요구로 ARM RISC CPU, 더 강력한 임베디드 µC 또는 MCU, DDR4가있는 스마트 RAM (기본적으로 ECC가 있고 플래시와 같은 섹터는 긴급 메모리 가져 오기에 우선 순위 비트가있는)과 같은 하나의 명령으로 더 많은 작업을 수행합니다. -CPU 진화 및 아키텍처 변경은 절대 멈추지 않습니다. 여기에 이미지 설명을 입력하십시오

힌트를 드리겠습니다. 엔지니어를 위해 인텔, AMD, TI 또는 AD에서 구직을 수행하고 작업 설명을 참조하십시오.

-수십억 개의 트랜지스터를위한 디자인은 어디에서 오는가? -64 비트 블록의 하드웨어를 추가 한 것입니다. 그러나 이제는 나노 튜브의 고장이 일어나고, 사고는 블록의 하향식 접근 방식에서 나노 튜브 의 상향식 접근 방식으로 바뀌어야 작동합니다.

  • 그들은 주로 소프트웨어에 의해 자동 생성됩니까? 혀를 뺨에 단단히 심고
  • 실제로 그들은 우주선에서 Area51에서 디자인을 추출하고 있으며 우리가 나노 나노 튜브를 완전히 준수 할 때까지 갈 길을 가지고 있습니다. 한 엔지니어가 라이브러리에 들어가서 nVidia에 따르면이 칩에서 우리와 함께 하고 부품이되어 매크로 블록으로 들어가기를 원한다고 nVidia는 말합니다. 레이아웃은 Toystory의 Ants처럼 복제 할 수있지만 모든 연결에 대한 명시 적 제어는 수동으로 라우팅 / 체크 아웃되어야하며 비교를 위해 DRC 및 자동 라우팅을 사용해야합니다. 예 자동화 도구는 지속적으로 업그레이드되어 중복을 제거하고 시간을 낭비합니다.

    -여전히 많은 수동 최적화가 있습니까?

  • 일등석에서 저녁 식사에서 올리브를 1 개만 제거하여 한 항공사가 급여를 지불하기에 충분한 비용을 절약 한 것을 고려하면 인텔은 기간 내에 최대한 많은 원자를 제거 할 수있는 방법을 모색 할 것입니다. 과도한 정전 용량은 열, 성능 및 oops 낭비를 의미합니다 .

그러나 실제로 CPU는 밤새가 아닌 도쿄와 같이 성장하지만 현재 수천만 명이 꾸준히 개선되어 살고 있습니다. Univ에서 디자인하는 법을 배우지 못했습니다. 그러나 일이 어떻게 작동하는지 읽고 이해하려고 노력함으로써, 나는 업계에서 매우 빠르게 속도를 낼 수있었습니다. 항공 우주, 원자력 기기 설계, SCADA 설계, 공정 모니터링, 안테나 설계, 자동 기상 관측소 설계 및 디버그, OCXO의 PLL의 VLF Rx, 블랙 브랜트 로켓의 양방향 원격 제어 등에서 1 년 5 년 동안 10 년의 경력을 쌓았습니다. 그건 내 첫 번째 직업이었습니다. 나는 내가 무엇을 할 수 있는지 전혀 몰랐다.

수십억 개의 트랜지스터에 대해 걱정하거나 배우거나 무엇을 알아야 하는지를 두려워하지 마십시오. 당신의 열정을 따르고 수면 사이에 무역 일지를 읽으십시오. 그러면 직장에서 너무 녹색으로 보이지 않고 더 이상 일하는 것처럼 느끼지 않습니다.

20 분 안에 시험의 일부로 741 "like"Op Amp를 설계해야했던 것을 기억합니다. 나는 그것을 실제로 사용한 적이 없지만 훌륭한 디자인에서 좋은 점을 알 수 있습니다. 그러나 트랜지스터는 20 개뿐이었습니다.여기에 이미지 설명을 입력하십시오

그러나 CPU를 설계하는 방법은 스펙으로 시작해야합니다. CPU를 설계하고 다음과 같은 목표를 달성하기 위해 측정 가능한 벤치 마크를 만드는 이유; -예를 들어, 매크로 명령 (MIPS) (CPU 클록보다 중요) - 인텔의 아이태니엄 칩은 그들이 컴퓨팅 (EPIC) 디자인 명시 적 병렬 명령을 부르는을 기반으로합니다. - 매우 긴 명령어 워드 코드 모핑 마이크로 프로세서 (VLIWCMM)를 갖춘 Transmeta 특허 CPU 디자인. 2006 년 인텔에 소송을 제기하고 상점을 문을 닫고 2007 년에 2 억 달러에 이르렀습니다.

더 많은 메트릭이 있지만 CPU 속도를 GHz 속도에 기반하지 마십시오 (신화 참조)

그렇다면 CPU를 설계하는 데 필요한 도구는 무엇입니까? 원자 수준 물리 설계에서 동적 메시 EMC 물리 EM / RF 설계, 프론트 엔드 설계 검증 테스트 엔지니어,이 기술에 필요한 기술이 포함 된이 페이지에는이 페이지에 적합하지 않습니다. -프론트 엔드 RTL 시뮬레이션-IA 및 컴퓨터 아키텍처 및 시스템 레벨 설계에 대한 지식-VHDL 또는 Verilog를 사용한 로직 검증 및 로직 시뮬레이션. -객체 지향 프로그래밍 및 다양한 CPU, 버스 / 인터커넥트, 일관성 프로토콜.


6
"Verilog"및 "VHDL"은 이러한 순진하지만 영감을주는 검색 질문의 표면 만 긁습니다. 현실은 디지털보다 훨씬 더 아날로그입니다.
Tony Stewart Sunnyskyguy EE75

어디에서나 Op Amp 회로에 대한 설명이 있습니까? 내가 볼 수있는 것은 캐스 코드 된 OTA이며 나머지는 회로 부두입니다.
CyberMen

3
와우. 그것은 문제와 관련이 거의 없습니다.
Dave Tweed

3
나는 이것이 매우 재미있는 책이라고 말해야한다. 숫자와 Vocab의 다음 몇 가지 자기 도움을 제공하여 독자의 마음을 날려 버릴 수있는 시도를하고 그에게 원래의 질문에 작가의 놀겠에서 점진적인 변화는 단지 그의 학교 소년 시절의 추억 다음 힌트 오만의 마지막으로 이동 표백에 "내가 그것을 요약 할 수 없을 정도로 복잡하다". 엄청나게 아름다운.
Ponkadoodle

그리고 내 의견은 다소 풍자적이지만, 마음을 가볍게 가져다 주길 바랍니다. 나는 정직하게 읽었습니다.
Ponkadoodle

2

AMD의 CPU 설계 개요

인텔 버전

이들 중 어느 것도 많은 세부 사항을 제공하지는 않지만 흥미로운 것은 없습니다. 이것을 대답으로 받아들이지 마십시오. 다른 사람들은 귀하의 질문을 자세하게 고려했으며 자세한 답변을 시도하는 데 더 많은 노력을 기울였습니다.


전에 TomsHardware 페이지를 보았습니다. 그러나 프로세서의 설계 방식이 아니라 프로세서의 제조 방식에 대해 설명합니다.
stevenvh
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.