대부분의 ALU는 어떻게 구축되며 '자신 만의 빌드'가 가능합니까?


11

난 정말 아주 낮은 수준의 컴퓨터에 대해 배우려고 정말 노력했습니다. 나는 많은 홈 브루어 페이지를 보았고 꽤 많이 들었습니다. 나는 대학에서 전자 공학 수업을 들었지만 실제로 컴퓨터 과학에 관한 주제에 깊이 들어 가지 않았습니다. 실제로는 알고리즘 등이었습니다.

어쨌든, 대부분의 ALU 는 어떻게 만들어 졌습니까? 나는 그것이 컴퓨터의 유일한 부분은 아니지만 여전히 중요한 부분이라는 것을 알고 있습니다.

그리고 논리 게이트를 사용하여 (학습 목적으로) 자체 ALU를 구축 할 수 있습니까? 나는 이것이 아마도 더 지식이 많은 사람들에게는 어리석은 것처럼 들리지만 이해하려고합니다. (아마도 간단한 가산기라도 깔끔한 프로젝트 일 것입니다.) 그렇다면 어떻게이 작업을 수행 할 수 있습니까? 하드웨어 예가 있습니까? (Google을 둘러 보았지만 단계별 설명이있는 것을 찾을 수는 없습니다).


1
이것에 관심 있을 수 있습니다 .
Dean

6
컴퓨터와 CPU 아키텍처에 관심이 있다면 CPU 칩 팀 내부에서 "컴퓨터 구성 및 디자인 : 하드웨어 / 소프트웨어 인터페이스"와 "컴퓨터 아키텍처 : 정량적 접근 방식"이라는 정식 서적이 있습니다. 이를 각각 "Patterson and Hennessy"및 "Hennessy and Patterson"이라고합니다.
Ross Rogers

@Dean-네, 컬러 코드 전선은 시스를위한 것입니다! :-)
stevenvh

1994 년 UT Austin에서 열린 EE360M의 학기 프로젝트는 XC3000으로 Xilinx 데모 보드에 구현 된 스택 기반 4 비트 ALU였습니다. 16 레벨 스택으로 사용되어 LED 7 세그먼트 디스플레이로 최고의 가치를 이끌어 냈습니다. 실제 ALU 인 XC4000이 있습니다. DIP 스위치에서 입력 및 작동을 설정하고 버튼을 누르면 이동합니다. XC4k에는 63 kHz ~ 8 MHz의 여러 주파수를 가진 내부 발진기가 있으며 우리 등급은 디자인이 얼마나 빨리 진행되고 여전히 작동하는지에 따라 부분적으로 결정됩니다.
Mike DeSimone

1
@Shubham : Minecraft에서 멀리 떨어져 있어야한다는 것을 알았을 때 ... 다른 작업을 수행 할 수 없습니다 ... O_o
Mike DeSimone

답변:


15

기본 논리 게이트 에서 완전히 구축 할 수 있으며 결과는 훌륭한 예술 작품 이 될 것입니다 :-).

74xx 논리 시리즈도 포함 74LS181 하는 4 비트 슬라이스 ALU 과감하게 일을 단순화합니다. 비트 슬라이스 ALU는보다 복잡한 ALU (읽기 : 더 긴 워드 길이)를 구축하는 데 사용되었지만 최신 기술로 인해 이러한 종류의 IC가 더 이상 사용되지 않습니다.
참고 : TTL (74xx)은 로직 게이트에 사용되는 기술 중 하나 일뿐입니다. 더 이상 거의 사용하지 않습니다. 그 뒤에는 저전력 쇼트 키 (Low-Power Schottky : 74LSxx)가 뒤 따르며 TTL 형식도 엄격하게 말합니다. 오늘날 고속 CMOS (74HCxx, 74HCTxx, 74ACxx 등)를 기반으로하는 수십 개의 로직 제품군이 있습니다.

요즘 ALU를 작성하는 올바른 방법은 CPLD 또는 FPGA 에서 수행하는 것입니다 . 이것은 많은 게이트를 제공하며, ALU를 설계하는 데 사용하는 HDL (Hardware Description Language) 은 로직 게이트 를 사용하여 직접 연결하는 방법을 찾는 것보다 훨씬 쉽고 오류가 적습니다 . VHDL 과 Verilog는 오늘의 HDL입니다.

논리 게이트를 사용하지 않는 ALU를 만드는 다른 방법은 단일 병렬 EEPROM / Flash 입니다. 입력 A 및 B와 연산을 입력 (주소)으로 사용하고 연산 결과를 출력 (데이터)으로 가져옵니다. ROM의 내용을 컴파일하기 만하면됩니다. 즉, 모든 입력에서 해당 입력 A, B 및 연산에 대한 연산 결과를 기록해야합니다. 단어 크기는 찾을 수있는 가장 큰 ROM 크기에 의해 제한됩니다.


5

자체 ALU를 구축 할 수 있지만 개별 TTL 칩이 장착 된 구형 컴퓨터에서도 일부 통합이 사용되었습니다. 예를 들어, 74x181 칩을보십시오. ALU의 4 비트 슬라이스이며 일부 TTL 컴퓨터에서 4 비트마다 이러한 칩 중 하나를 사용하여 전체 ALU를 구현하는 데 사용되었습니다.


무지하게 들리게해서 미안하지만, TTL 칩이 로직 게이트와 정확히 어떻게 다릅니 까? 로직 게이트 전후에 TTL이 사용 되었습니까? 또는 논리 게이트로 만들어

@Sauron-논리 가족에 대한 답변을 답변에 추가했습니다.
stevenvh

5

나는 HDL 세계에서 먼저 시작할 것입니다. verilog를 작성하고 verilator 또는 icarus verilog를 사용하여 시뮬레이션하십시오. 이산 및 / 또는 게이트가 아닌 코드와 같이 코드를 작성하십시오. 그런 다음 기울어 진 경우 74xx 시리즈 부품 (재활용?)과 브레드 보드를 찾으십시오. 또는 50 달러의 플러스 또는 마이너스 CPLD 및 FPGA 보드가있을 수 있으며 외부에서 일종의 인터페이스를 제공하는 보드 중 하나에 alu를 넣을 수 있습니다. 나는 HDL 교육이 당신이 가산기의 기초를 배우고 입력과 출력 및 작동을 섞는 것과 동일하다고 주장합니다. 그러나 하드웨어로 가져 가기 전에 사용하기 쉽고 환경을 볼 수 있습니다. 오늘날 사람들이하는 방식과 매우 유사하게 설계 및 시뮬레이션 한 다음 배포합니다.


1
물론. 먼저 시뮬레이션하십시오. 그렇다면 하드웨어가 필요하다면 FPGA가 가장 실용적입니다. 이 복잡한 것을 위해 74xx TTL을 배선하면 디자인이 실제로 고려 될 때까지 다루어지지 않아야하는 거대한 프로젝트가 될 것입니다.
Chris Stratton

5

나는 확실히 패터슨과 헤네시 (Patterson and Hennessy) 책의 두 번째 책 (IIRC는 3 판으로 가장하지만 실제로는 완전히 다른 책이다).

기본 ALU 또는 심지어 CPU 설계로 실험하고 싶다면 로직 시뮬레이터로 실험을 시작하십시오. 수업에 DigitalWorks를 사용했지만 권장하지는 않습니다. Logisim ( http://sourceforge.net/projects/circuit/ )은 유망한 것으로 보입니다. 마스터해야 할 것은 레이어링입니다 : 풀 가산기, 선택기 및 게이트에서 에지 트리거 플립 플롭과 같은 기본 블록을 구축 한 다음 해당 빌딩 블록에서 레지스터, ALU, 시퀀싱 로직을 CPU까지 구축합니다. 기억으로. PIC (14 비트 코어) CPU와 동등한 것으로 말하고 많은 LED를 연결하고 Kitt 디스플레이를 표시하도록 프로그래밍하는 것은 어렵지 않습니다.

그 후 32 비트 코어, GCC를 포팅하고 FPGA에서 실현하고 리눅스를 실행하는 것이 재미있을 것입니다. 그러나 당신은 첫 번째가되지 않을 것입니다 ...


4

전혀 멍청한 질문이 아닙니다. 위키 페이지 2 비트 ALU를위한 프로그램 등의 게이트 레벨 회로. 일반적으로 4 비트 인 '슬라이스'에서 일반적으로 사용할 수있는 ALU IC는 더 큰 버스 폭을 얻기 위해 캐스케이드 할 수 있습니다 ( 비트 슬라이싱 참조 ).

Texas 74181 4 비트 슬라이스 ALU 의 데이터 시트 에는 게이트 레벨 회로도도 있습니다.


4

CPU 이야기는 패키지 당 많은 양의 물건 중 하나입니다.

초기 CPU는 항상 몇 개의 릴레이 또는 진공 튜브로 구축 된 직렬 ALU를 사용했습니다. 이 전통을 가장 먼저 발휘 한 것은 1947 년 회오리 바람이었습니다.

최초의 트랜지스터 화 된 CPU는 개별 트랜지스터에서 모든 것을 구축했습니다.

아마도 집적 회로로 구축 된 최초의 컴퓨터 인 Apollo Guidance Computer (AGM)는 메모리 외부에서 3 가지 입력 NOR 게이트와 같은 한 종류의 IC만을 사용했습니다. ALU와 CPU의 다른 모든 부분은 전적으로 많은 NOR 게이트 IC로 만들어졌습니다. Cray 1은 메모리 외부에서 한 종류의 IC, 즉 다른 종류의 NOR 게이트 만 사용했습니다.

사람들이 칩에 더 많은 트랜지스터를 넣는 방법을 알아 냈을 때, 나중에 CPU는 ALU를 구현하기 위해 더 적은 수의 칩을 사용했습니다.

ALU는 NOR 구현보다 더 적은 수의 칩을 사용하여 멀티플렉서 ( "멀티플렉서 : 전술적 Nuke of Logic Design" ) 에서 완전히 구축 할 수 있습니다 .

Dieter Mueller는 2 개의 74181 칩보다 더 많은 기능을 가진 8 비트 ALU 설계를 발표 했습니다. 74181은 더 적은 수의 칩으로 만들어졌습니다. mux 및 일부 2 : 1 mux.

역사적으로 중요한 상업용 컴퓨터와 마찬가지로 많은 가정용 CPU는 단일 칩에서 최초의 "완전한"ALU 인 74181의 일부 버전을 사용합니다.

이러한 CPU 중 다수는 74181 칩과 74182 칩 중 8 비트 ALU 또는 16 비트 (또는 둘 다)를 구축했습니다. 각 74181은 4 비트 폭의 작업 만 처리합니다. 가정용 양조 기계는 일반적으로 작동하는 가장 간단한 것을 사용합니다. 하나의 74181을 다음으로 반입하여 리플 캐리 가산기를 형성합니다. 74181 칩을 사용하는 상업용 기계는 일반적으로 74182 고급 캐리 생성기를 사용하여 덧셈과 뺄셈을 훨씬 빠르게 수행합니다.

오늘날 대부분의 ALU는 CPU의 작은 부분, 다른 종류의 ASIC 또는 CPLD 또는 FPGA와 같은 일부 칩 안에 숨겨져 있습니다.

"단일 칩 컴퓨터"를 사용할 수 있더라도 때때로 누군가는 학습 목적으로 더 단순한 로직 게이트 또는 개별 트랜지스터 또는 릴레이 만 사용하여 AAL 또는 GAL 에서 74181 호환 ALU를 구축 합니다.

사람들이 그렇게 했으므로 가능해야합니다.

ALU 설계 및 구현을 설명하는 단계별 안내서는 정말 좋은 생각입니다. Microprocess Design wikibook에서 "ALU" 또는 "Wire Wrap" 섹션에 하나를 작성하도록 도와주십시오 .



2

역사적으로, 일부 ALU 작업은 디스크리트 (예, 트랜지스터 등)로, 일부는 게이트로, 일부는 4 비트 '슬라이스'칩으로 이루어졌습니다 (TI의 SN74181은 초기였으며 Fairchild 29F01은 그 당시였습니다).
그러나 오늘은 게이트 어레이 또는 PLA 논리 설명 언어로 논리 방정식을 작성해야합니다. 선택한 작은 로직 유닛을 설계에 적용 할 수있는 상용 내장 모듈이 있으며 'IP'(지적 재산권) 라이센스를 취득하는 데 드는 비용입니다.


1
저항이 저항에 비해 저렴할 때 트랜지스터 수가 매우 적은 ALU (예 : 스테이지 당 2 개의 트랜지스터를 사용하는 완전 가산기)를 구성 할 수있는 몇 가지 트릭이있었습니다. 이러한 회로는 전력이 고갈되어 매우 빠르지는 않지만 트랜지스터가 비싸면 상당한 비용을 절약 할 수 있습니다.
supercat
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.