일부 맞춤형 CPU를 살펴보면서 CPU가 작동하는 주파수가 현대 CPU와 비교하여 (수 MHz 정도) 상대적으로 낮다는 것을 알았습니다. 예를 들어 브레드 보드와 같은 전자 공학적 제한이 있습니까? 그렇다면 설계로 달성 할 수있는 최대 주파수를 결정하는 방법은 무엇입니까?
일부 맞춤형 CPU를 살펴보면서 CPU가 작동하는 주파수가 현대 CPU와 비교하여 (수 MHz 정도) 상대적으로 낮다는 것을 알았습니다. 예를 들어 브레드 보드와 같은 전자 공학적 제한이 있습니까? 그렇다면 설계로 달성 할 수있는 최대 주파수를 결정하는 방법은 무엇입니까?
답변:
주로 게이트를 통한 상호 연결 및 전파 지연의 길이와 관련이 있습니다. CPU를 본질적으로 줄이면 피드백 머신입니다. 다수의 조합 논리 회로는 기계의 현재 상태에 대한 일부 부울 함수를 계산하고, 이러한 함수는 새로운 클록 에지가 도달 할 때 순차 회로에 의해 래치되는 새로운 상태를 결정합니다. 조합 회로는 모두 지연이 있습니다. 클록 기간은 이들 게이트를 통한 가장 느린 경로가 안정적인 결과를 생성하는 데 걸리는 시간보다 짧을 수 없습니다. 하나의 잘못된 비트가 쇼를 중단하기 때문입니다.
또한 순차적 로직에는 타이밍 요구 사항이 있습니다. 클럭 에지에 도달하기 전에 입력을 안정적으로 유지해야하는 최소 설정 시간이 있으며, 그 후 일정 시간 동안 입력이 안정적이어야합니다. 이를 위반하면 상태가 쓰레기가됩니다.
전파 지연은 기생 캐패시턴스가 얼마나 빨리 충전 될 수 있는지, 인덕턴스에 빠르게 전류가 축적 될 수있는 방법, 실리콘 장치가 얼마나 빨리 스위칭 할 수 있는지에 따라 발생합니다. 예를 들어, 더 작은베이스를 가진 바이폴라 트랜지스터는 더 큰베이스를 가진 것보다 더 빠르게 전환 할 수 있으므로 칩의 작은 트랜지스터는 이산 트랜지스터보다 빠릅니다.
이전에 삭제 한 답변에서 전송선 효과에 대해 썼습니다. 그러나 나는 10 Mhz에서 파장이 여전히 약 30 미터이기 때문에 우리가 이야기하는 속도로 이러한 효과가 그림에 나타나지 않는다고 생각하지 않았습니다. 따라서 일반적인 크기의 회로 기판의 규모에서 몇 메가 헤르츠의 시간 규모 펄스는 여전히 구리 네트워크의 모든 부분에 동시에 도달합니다.
따라서 개별 부품으로 CPU를 만들면 스위칭 시간이 빠른 소형 부품을 달성하지 못하고 스트레이 커패시턴스 및 인덕턴스를 최소화하는 동일한 근접성을 달성 할 수 있습니다.
그럼에도 불구하고 1960 년대의 고대 이산 부품 기계는이 가정용 기계보다 훨씬 더 빠르게 작동했습니다. 거기에 도착하는 데 약간의 시간과 교활함이있었습니다. 예를 들어, IBM 360 모델 44 (1964)는 4Mhz에서 실행되었습니다. 그것은 여전히 "홈브류 속도"일지 모르지만, 몇 년 후 1969 년에 출시 된 CDC 7600은 36Mhz를 초과했습니다. Wikipedia 기사 http://en.wikipedia.org/wiki/CDC_7600 은 다음과 같은 몇 가지 요령에 대한 힌트를 제공합니다.
"항상 항상 Cray의 설계는 크기를 줄이고 신호 경로를 줄이며 작동 주파수를 높이기 위해 패키징에 중점을 두었습니다. ... [E] 각 회로 모듈은 실제로 최대 6 개의 PC 보드로 구성되어 있으며 각 보드는 초소형 저항기, 다이오드로 채워져 있습니다. 6 개의 보드가 쌓여서 가장자리를 따라 상호 연결되어 매우 컴팩트하지만 기본적으로 수리 할 수없는 모듈이되었습니다. "
따라서 가정용 CPU는 빌드 품질 및 레이아웃과 관련된 혼란스러운 영향으로 인해 반드시 진정한 잠재력으로 구축되지는 않습니다. 그럼에도 불구하고 몇 메가 헤르츠에서 실행되는 개별 집적 회로와 개별 구성 요소로 CPU를 구축하는 사람은 박수를 보내야합니다.
과학 박람회에서 약간의 상을 수상한 7400 시리즈 TTL로 특수 목적 컴퓨터를 제작 한 전 고등학생으로서, 나는 가능한 한 빨리 달리는 것을 막는 다음과 같은 것들을 관찰했습니다.
브레드 보드의 정전 용량. 인접한 모든 커넥터 쌍 사이의 몇 pF. 펄스 에지 상승 / 하강 시간이 제한되고 크로스 토크가 추가 된 곳이 있습니다. 이것은 아마도 가장 큰 요인 일 것입니다.
그랩 백 칩의 변형. 전파 지연 및 기타 특성이 다른 74LSxx, 74Hxx, 74xx는 누구나 Poly-Paks를 기억합니까? 신호가 몇 MHz보다 높은 클럭 속도에서 동기화 상태를 유지하는 것이 불가능했습니다.
그랩 백이나 다른 품질이없는 소스로부터 다시 싼 정적 메모리 칩. 그들은 특정 속도 이상으로 안정적으로 읽거나 쓸 수 없었습니다.
내 테스트 계측은 가정용 신호 발생기, 5MHz 대역폭 오실로스코프 및 임시 배심원이 장착 한 디지털 회로로 제한되었습니다. 저역 통과로 필터링 된 디지털 신호의 신호 무결성, 타이밍, 진폭을 확인하기 어렵습니다.
오늘날 골동품 구매자가 아니라면 5MHz 범위를 찾기가 어려울 것입니다. 0.1 인치 간격의 DIP 패키지에서도 모든 종류의 더 나은 칩을 쉽게 얻을 수 있습니다. 단, 오랫동안 가방을 잡는 방식은별로 보지 못했습니다. 그러나 소켓 브레드 보드는 크게 바뀌지 않았습니다. 스트레이 커패시턴스는 여전히 획기적인 창의적인 디지털 프로젝트의 속도를 떨어 뜨립니다.
홈 브로우 PCB를 사용하여 브레드 보드를 피하는 것이 부유 커패시턴스를 피하는 가장 좋은 방법이지만 물론 더 많은 노력과 시간이 필요합니다.
주된 이유는 주파수를 높이면 브레드 보드 연결의 임피던스가 증가하여 회로의 최종 속도를 제한하기 때문입니다.
브레드 보드의 모든 연결에는 낮지 만 0이 아닌 인덕턴스가 있습니다. 빈도가 높아질수록 이러한 영향을 고려해야합니다. 전선의 임피던스는 다음과 같이 찾을 수 있습니다.
여기서 L은 와이어의 인덕턴스입니다. 결국 Z는 전류가 흐르지 않고 회로가 작동하지 않을 정도로 충분히 높아집니다. 이 숫자의 정확한 숫자 값을 찾는 것은 특히 복잡합니다. 특히 브레드 보드에는 서로 트레이스가 있고이 식에서 각 와이어의 임피던스가 약간 변경되기 때문입니다. 당신이 경우 정말 (부정확) 번호를 원하는, 당신은 시도 할 수 있습니다 여기에 당신의 전선의 인덕턴스 (따라서 임피던스)를 계산 할 수 있습니다. 부품이 작동 할 수있는 최저 전류를 알고 있으면 해당 한계에 도달하기 전에 최대 주파수를 결정할 수 있습니다.
다른 사람들은 "왜"라고 대답했습니다. 최대 속도를 결정하는 방법은 다음과 같습니다.
사제 기계의 경우 두 가지 요소가 있습니다. 사용중인 칩의 전파 지연 및 CPU 설계를 통해 가장 긴 경로에서 사용해야하는 칩 수.
예를 들어, 74HC574 (8 비트 레지스터)의 최대 전파 지연은 약 41ns입니다 (데이터 시트에서 가져옴). 이제 CPU 설계를 통과하는 가장 긴 경로가 8 개의 서로 다른 칩을 통과해야한다고 가정 해 보겠습니다. 8 개 각각에 대한 전파 지연을 더하고 333ns에 도달한다고 상상해 보자. 1000ns는 1Mhz와 동일하며 최대 속도는 3Mhz입니다.
실제로 안정적인 디자인을 보장하기 위해 2Mhz와 같은 느린 속도로 자신을 제한하고 싶을 수도 있습니다. 비록 당신이 10 억 사이클마다 한 번만 타이밍을 놓칠 것이라고 생각하더라도 여전히 문제가 있습니다. 100 억을 3 백만으로 나눈 값은 3,333 초마다 한 번씩 실행이 빠짐을 의미하며 이는 시간당 약 1 회입니다. 매 시간마다 기계를 충돌시키는 것은 좋지 않습니다!
더 빠르게 진행하려면 더 빠른 칩을 사용하거나 디자인을 변경하여 가장 느린 경로의 칩 수를 줄이십시오. 가장 빠른 홈브류 속도는 약 4Mhz로 각 사이클을 완료하는 데 250ns를 제공합니다.