내셔널 세미컨덕터 PACE
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
내셔널 세미컨덕터 PACE는 1974년 내셔널 세미컨덕터가 출시한 pMOS 로직 기반의 16비트 마이크로프로세서이다. 40핀 DIP 패키지를 사용하며, 세 가지 공급 전압을 필요로 했다. 1970년대 후반, 내셔널 세미컨덕터는 nMOS 로직을 사용하여 PACE를 개선한 INS8900을 출시했는데, 이는 전원 공급 방식을 단순화하고 TTL 회로와의 인터페이스를 용이하게 했다. INS8900은 클럭 속도를 향상시키고 인터럽트 관련 문제를 해결하는 등 성능을 개선했다.
더 읽어볼만한 페이지
- 16비트 마이크로프로세서 - 인텔 8086
인텔 8086은 1978년 인텔에서 개발한 16비트 마이크로프로세서로, 8비트 프로세서인 인텔 8080을 확장하여 20비트 어드레스 버스를 통해 1MB의 메모리 공간을 지원하며 IBM PC에 채택되어 x86 아키텍처의 상업적 성공을 이끌었다. - 16비트 마이크로프로세서 - 인텔 80286
인텔 80286은 1984년에 출시된 16비트 x86 마이크로프로세서로, 8086과 호환되며 16MB의 물리 메모리와 1GB의 가상 메모리를 지원하고 보호 모드를 통해 멀티태스킹을 가능하게 했다. - 마이크로프로세서 - 중앙 처리 장치
중앙 처리 장치(CPU)는 컴퓨터 시스템의 핵심 부품으로, 프로그램 명령어를 해석하고 실행하여 데이터를 처리하는 장치이다. - 마이크로프로세서 - ARM 아키텍처
ARM 아키텍처는 저전력 설계로 모바일 기기에서 널리 쓰이는 RISC 기반 프로세서 아키텍처로서, IP 코어 라이선스 모델과 ARM Flexible Access를 통해 다양한 분야로 확장되고 있다.
내셔널 세미컨덕터 PACE | |
---|---|
기본 정보 | |
![]() | |
제품군 | PACE |
개발사 | 내셔널 세미컨덕터 |
출시일 | 1975년 |
중단일 | 1970년대 후반 |
CPU 비트 너비 | 16비트 |
명령어 세트 아키텍처 | NSC8 |
기술적 세부 사항 | |
클럭 속도 | 2 MHz, 4 MHz |
버스 인터페이스 | 8비트 또는 16비트 |
핀 수 | 40 |
기술 | PMOS 로직 |
트랜지스터 수 | 6,000 |
특징 | |
특징 | 단일 칩 16비트 마이크로프로세서 |
기타 | |
후속작 | INS8900 |
2. 역사
PACE는 1970년대 초반, 마이크로프로세서 기술 발전의 초기 단계에서 등장했다.
PACE는 데이터 제너럴의 Nova 미니컴퓨터 아키텍처를 기반으로 설계된 16비트 마이크로프로세서이다.
3. 기술적 특징
PACE는 4개의 16비트 범용 레지스터(AC0-AC3)를 가지고 있으며, AC0는 주로 산술 및 논리 연산에 사용되는 누산기이고, AC2와 AC3는 누산기 또는 인덱스 레지스터로 활용될 수 있다. PACE는 Data General의 Nova 미니컴퓨터 설계를 기반으로 하지만, 일부 명령어는 AC0에서만 작동하도록 변경되었다.[1]
10단계 깊이의 하드웨어 스택은 `PUSH` 및 `PULL` 명령어를 통해 스택 포인터가 자동으로 증가/감소한다. 서브루틴 호출 및 반환 시에는 프로그램 카운터(PC)가 자동으로 스택에 저장되거나 복원되며, 레지스터와 상태 및 제어 플래그 레지스터(FR)도 스택에 저장하고 복원할 수 있다.[2] 스택 오버플로/언더플로 인터럽트는 PACE의 독특한 기능 중 하나로, 스택이 가득 찬 상태에서 PUSH를 시도하거나 빈 상태에서 PULL을 시도하면 인터럽트가 발생한다. 이는 인터럽트 처리기를 호출하여 스택의 일부 또는 전체 값을 주 기억 장치와 주고받는 데 사용될 수 있으며, 내부 스택 레지스터를 더 큰 메모리 기반 스택의 캐시처럼 활용할 수 있게 한다.[3]
16비트 상태 및 제어 플래그 레지스터(FR)는 인터럽트, 바이트 모드 등 다양한 기능을 제어하며, 비트 0과 15는 사용되지 않고 항상 1로 설정된다. 나머지 14개 비트의 기능은 다음과 같다.비트 위치 기능 1 1 (사용 안 함) 2 F14 (외부 장치 제어) 3 F13 (외부 장치 제어) 4 F12 (외부 장치 제어) 5 F11 (외부 장치 제어) 6 B (바이트 모드) 7 IEN (인터럽트 활성화/비활성화) 8 L (링크 플래그) 9 CY (캐리 플래그) 10 OV (오버플로 플래그) 11 IE5 (인터럽트 제어) 12 IE4 (인터럽트 제어) 13 IE3 (인터럽트 제어) 14 IE2 (인터럽트 제어) 15 IE1 (스택 오버플로/언더플로 인터럽트) 16 1 (사용 안 함)
PACE는 모든 명령어가 16비트 고정 길이 형식을 사용하며, 가변 길이 명령어는 사용하지 않는다. 상위 6비트(10~15비트)는 연산 코드를, 비트 8(R, 상대 주소)과 9(X, 인덱스)는 주소 지정 모드를 나타낸다. 명령어의 나머지 8비트는 일반적으로 8비트 주소를 나타낸다.[1] 43개의 명령어와 45개의 연산 코드가 있었으며, LD|엘디영어와 ST|에스티영어에 각각 두 개의 연산 코드가 있었다.[2]
X가 0일 때, 주소 비트는 메모리의 직접 주소를 나타낸다. R도 0으로 설정되면 주소는 베이스 페이지(일반적으로 메모리의 처음 256바이트) 내에 있었다. R을 1로, X를 0으로 설정하면 PC에서 오프셋으로 나머지 8비트가 사용되었다. X 비트를 1로 설정하면 인덱싱이 켜지고, 8비트가 인덱스 레지스터의 값과 함께 사용되었으며, R이 0일 때는 AC2, 1일 때는 AC3의 값을 더했다.[3]
BPS|비피에스영어 핀 활성화 시 베이스 페이지는 처음 128바이트와 마지막 128바이트로 분할되었다.
간접 주소 지정은 주로 레지스터와 메모리 간 값을 로드하고 저장하는 LD|엘디영어 및 ST|에스티영어 명령어로 지원되었다. 별도의 연산 코드를 사용하여 간접 주소 지정을 나타냈으며, X 플래그와 결합되면 8비트 오프셋이 먼저 표시된 인덱스 레지스터에서 더하거나 빼졌다.
ISZ|아이에스지영어 및 DSZ|디에스지영어는 메모리 값을 증가 또는 감소시켰으며, PACE는 내장된 0 건너뛰기 기능을 통해 별도의 테스트 없이 루프 성능을 가속화했다.
3. 1. 물리적 특성
PACE는 40핀 듀얼 인라인 패키지(DIP)로 포장되었으며, 원래 세라믹 재질이었다. pMOS 로직을 기반으로 했기 때문에 PACE 시리즈는 +5V (VSS, 20번 핀), +8V (VBB, 23번 핀), 그리고 접지 레벨로 -12V (VGG, 29번 핀)의 세 가지 공급 전압을 필요로 했다. +8V 레벨은 일반적으로 +5V 라인에서 공급되는 간단한 전자 장치를 사용하여 공급되었으므로 전원 공급 장치의 복잡성을 줄였다.
3. 2. 내부 설계
PACE는 4개의 16비트 범용 레지스터(AC0-AC3)를 가지고 있다. AC0는 주로 산술 및 논리 연산에 사용되는 누산기이며, AC2와 AC3는 누산기 또는 인덱스 레지스터로 활용될 수 있다. 이는 Data General의 Nova 미니컴퓨터의 설계를 기반으로 한 것이지만, PACE는 일부 명령어를 AC0에서만 작동하도록 변경했다.[1]
PACE는 10단계 깊이의 하드웨어 스택을 가지고 있어, `PUSH` 및 `PULL` 명령어를 통해 자동으로 스택 포인터가 증가/감소한다. 서브루틴 호출 및 반환 시에는 프로그램 카운터(PC)가 자동으로 스택에 저장되거나 복원된다. 또한, 레지스터와 상태 및 제어 플래그 레지스터(FR)도 스택에 저장하고 복원할 수 있다.[2]
스택 오버플로/언더플로 인터럽트 기능은 PACE의 독특한 기능 중 하나이다. 스택이 가득 찬 상태에서 PUSH를 시도하거나, 빈 상태에서 PULL을 시도하면 인터럽트가 발생한다. 이는 인터럽트 처리기를 호출하여 스택의 일부 또는 전체 값을 주 기억 장치와 주고받는 데 사용될 수 있다. 이를 통해 내부 스택 레지스터를 더 큰 메모리 기반 스택의 캐시처럼 활용할 수 있다.[3]
16비트 상태 및 제어 플래그 레지스터(FR)는 인터럽트, 바이트 모드 등 다양한 기능을 제어한다. 비트 0과 15는 사용되지 않고 항상 1로 설정되어 있으며, 나머지 14개 비트는 다음과 같은 기능을 담당한다.
비트 위치 | 기능 |
---|---|
1 | 1 (사용 안 함) |
2 | F14 (외부 장치 제어) |
3 | F13 (외부 장치 제어) |
4 | F12 (외부 장치 제어) |
5 | F11 (외부 장치 제어) |
6 | B (바이트 모드) |
7 | IEN (인터럽트 활성화/비활성화) |
8 | L (링크 플래그) |
9 | CY (캐리 플래그) |
10 | OV (오버플로 플래그) |
11 | IE5 (인터럽트 제어) |
12 | IE4 (인터럽트 제어) |
13 | IE3 (인터럽트 제어) |
14 | IE2 (인터럽트 제어) |
15 | IE1 (스택 오버플로/언더플로 인터럽트) |
16 | 1 (사용 안 함) |
- CY (캐리 플래그): 덧셈 연산에서 캐리 발생 여부를 나타낸다.
- OV (오버플로 플래그): 오버플로 발생 여부를 나타낸다.
- L (링크 플래그): 시프트 및 회전 명령어에서 비트를 시프트해야 함을 나타낸다. 대부분의 마이크로컴퓨터 CPU 설계에서는 캐리 플래그를 사용하여 처리하지만, PACE는 별도의 플래그를 두어 시프트/회전 및 추가 명령어 중에 두 값을 개별적으로 추적할 수 있도록 했다.
- IEN (인터럽트 활성화/비활성화): 인터럽트 전체를 활성화하거나 비활성화한다.
- B (바이트 모드): 이 플래그가 켜져 있으면 데이터를 16비트가 아닌 8비트 워드로 처리한다. 이를 통해 ASCII 텍스트와 같은 8비트 데이터 처리가 용이하다.
- IE1 ~ IE5 (인터럽트 제어): 외부 인터럽트를 우선순위에 따라 제어한다. IE1은 스택 오버플로/언더플로 인터럽트에만 사용된다. 나머지 4개는 개별 인터럽트 라인을 비활성화하거나, 외부 장치가 인터럽트를 요청할 수 있는지 여부를 결정하는 데 사용된다. 예를 들어, IE 플래그 값이 5이면, 5 이하의 우선순위를 가진 장치만 인터럽트를 요청할 수 있다.
- F11 ~ F14 (외부 장치 제어): 외부 장치를 직접 제어하는 데 사용되는 출력이다. 예를 들어, 특정 장치에 버스의 데이터를 표시하도록 지시하는 데 사용될 수 있다.
3. 3. 주소 지정 모드 및 명령어 형식
PACE는 가변 길이 명령어를 사용하는 대신, 모든 명령어가 16비트 고정 길이 형식을 사용했다. 16비트 워드는 명령어 형식을 위해 여러 비트 필드로 나뉘었다. 상위 6비트(10~15비트)는 연산 코드를 나타내고, 비트 8(R, 상대 주소)과 9(X, 인덱스)는 주소 지정 모드를 나타냈다. 명령어의 나머지 8비트는 일반적으로 8비트 주소를 나타냈다.[1] 이는 임의의 메모리 위치를 직접 지정할 수 없음을 의미한다. 8비트 값에서 필요한 16비트 주소를 만들기 위해 여러 가지 시스템이 사용되었다. 43개의 명령어와 45개의 연산 코드가 있었으며, LD|엘디영어와 ST|에스티영어에 각각 두 개의 연산 코드가 있었다.[2]X가 0일 때, 주소 비트는 메모리의 직접 주소를 나타냈다. R도 0으로 설정되면 주소는 베이스 페이지 내에 있었으며, 일반적으로 메모리의 처음 256바이트였다. R을 1로, X를 0으로 설정하면 PC에서 오프셋으로 나머지 8비트가 사용되었다. X 비트를 1로 설정하면 인덱싱이 켜지고, 8비트가 인덱스 레지스터의 값과 함께 사용되었으며, R이 0일 때는 AC2의 값을 더하고, 1로 설정하면 대신 AC3을 사용했다.[3]
일반적으로 베이스 페이지는 메모리의 처음 256바이트였지만, BPS|비피에스영어 핀이 활성화되면 베이스 페이지를 처음 128바이트와 마지막 128바이트로 분할했다. 외부 장치가 상위 메모리 위치에 매핑되고 버스에서 주소를 검사하여 상위 9비트가 모두 1인지 확인하여 쓰기 및 읽기를 쉽게 감시할 수 있도록 하기 위함이었다. BPS|비피에스영어 설정을 변경하는 명령어가 없었기 때문에, 대부분의 시스템은 핀을 상태 핀 중 하나에 연결한 다음 상태 변경 명령어를 사용하여 제어했다.
PACE의 간접 주소 지정은 제한적이었으며, 주로 레지스터와 메모리 간에 값을 로드하고 저장하는 LD|엘디영어 및 ST|에스티영어 명령어로 지원되었다. 간접 주소 지정을 나타내는 것은 주소 지정 표시 비트를 사용하는 것과 달리 별도의 연산 코드를 사용했다. 사용 시, 주소는 정상적으로 구성되어 8비트 주소를 베이스 페이지 또는 PC에 추가했다. 그런 다음 해당 메모리 위치의 16비트 값을 읽고 해당 주소에서 로드하거나 저장했다. X 플래그와 결합되면 8비트 오프셋이 먼저 표시된 인덱스 레지스터에서 더하거나 뺐다.
간접 주소 지정의 또 다른 사용자는 ISZ|아이에스지영어 및 DSZ|디에스지영어였다. 이들은 메모리의 값을 증가 또는 감소시켰으며, 루프를 구현하는 데 일반적으로 사용되었으므로 루프의 제어 변수가 코드 블록 외부에 있을 수 있으므로 간접 주소 지정이 일반적이었다. 이 명령어의 또 다른 기능은 (어떤 주소 지정 모드에서도) 값이 0으로 변경되면 SK|에스케이영어ip 명령이 호출된다는 것이었다. 이를 통해 추가적인 테스트 없이 루프를 종료할 수 있었다. 일반적으로 루프의 마지막 명령어는 루프의 맨 위로 다시 JMP|제이엠피영어하는 것이지만, 값이 0에 도달하면 자동으로 해당 JMP|제이엠피영어를 SK|에스케이영어하고 계속 진행했다.
이러한 스타일의 루핑 제어는 미니컴퓨터에서 일반적이지만, 마이크로컴퓨터 설계에서는 그렇지 않다. 전용 마이크로에서는 이러한 종류의 작업이 일반적으로 여러 명령어로 수행되며, 그 중 하나는 루프 인덱스를 지정된 값(이 경우 0)과 비교한 다음, 조건이 충족되지 않으면 맨 위로 분기한다. PACE의 내장된 0 건너뛰기 기능은 별도의 테스트를 피함으로써 루프 성능을 가속화하는 미니의 일반적인 기능이었다. 적절하지 않은 경우, 증가 또는 감소는 이 기능을 트리거하지 않도록 오프셋을 0으로 설정할 수 있다.
4. INS8900
INS8900은 내셔널 세미컨덕터가 PACE를 nMOS으로 재설계한 마이크로프로세서이다. nMOS는 pMOS에 비해 낮은 전압으로 동작하여 전력 소비를 줄이고 TTL 회로와의 인터페이스를 간소화하는 장점이 있었다.[2] INS8900은 전원 핀 입력이 변경되었고, TTL 전압에서 작동하는 신호 핀을 통해 외부 시스템과의 통신이 쉬워졌다. 또한, 클럭 신호에 필요한 전력이 감소하여 시스템 속도가 향상되었고, PACE에서 발견된 스택 관련 인터럽트 문제 등이 수정되었다.
4. 1. 개선 사항
1970년대 초 반도체 제조 기술이 발전하면서 NMOS 로직이 도입되었다. nMOS는 pMOS와 달리 내부 트랜지스터가 기판 레이어에 큰 전압을 필요로 하지 않아, 프로세서가 세 개가 아닌 두 개의 입력 전압(+5V, +12V)으로 작동할 수 있게 되었다. 이로써 양의 전압 공급을 +5V로 설정하여 TTL 회로와의 인터페이스가 매우 쉬워졌다.[2]
내셔널 세미컨덕터는 nMOS로 PACE를 재설계하여 INS8900을 개발했다. 새 버전은 기존 칩 레이아웃을 유지하면서 전원 핀 입력을 변경했다. +5V VSS는 접지(GND)로, VBB는 -8V에서 +8V로, -12V VGG는 +12V VDD로 바뀌었다. CLK는 VCC로, NCLK는 CLKX로 이름이 변경되었다.
주요 변화는 신호 핀이 TTL 전압에서 작동하여 외부 시스템과 직접 통신할 수 있게 된 것이다. 공유 데이터/주소 버스에서 주소를 래치해야 하는 문제는 여전했지만, 일반적인 TTL 구성 요소로 래칭을 수행할 수 있게 되었다. 내셔널 세미컨덕터는 이 용도로 INS8208 및 INS8212를 제안했다.
nMOS의 낮은 부하 덕분에 클럭 신호에 많은 전력이 필요하지 않게 되었다. STE 대신 적절한 크리스탈과 인버터를 사용할 수 있게 되었다. 외부 클럭은 고전력이 아니어도 되므로, CLKX로 이름이 바뀐 하나의 클럭 입력만 필요했다. CPU 내부에서 두 번째 위상이 생성되었다. 이러한 변경으로 시스템 속도가 향상되어 2 MHz 클럭이 권장되었고, 명령어 실행 시간은 8~20 마이크로초로 개선되었다.
PACE에서 발견된 스택 오버플로우 인터럽트 문제 등도 8900에서 해결되었다.
5. 성능
PACE는 당시 시대에 비교적 빠른 클럭 속도로 작동했지만, 명령어 집합 아키텍처(ISA)는 마이크로코드를 사용하여 구현되었고, 멀티플렉스 버스는 각 메모리 액세스에 두 사이클이 필요했다. 결과적으로 일반적인 명령어는 완료하는 데 약 12~30 마이크로초가 소요되었으며, 이는 인텔 8080과 같은 동시대 8비트 프로세서와 비슷한 속도였다.[1] 그러나 더 큰 데이터를 처리할 때, 예를 들어 부동 소수점 라이브러리에서는 단일 명령어가 한 번의 연산으로 두 배 더 많은 데이터를 처리할 수 있어 이점을 제공했다.[2]
참조
[1]
웹사이트
National Semiconductor PACE CPU family
https://www.cpu-worl[...]
[2]
논문
Recollections on MOSFET Scaling
2007
[3]
문서
McDonald Douglas produced a classified military 16-bit processor called the "Actron" around 1973.
2010-04-18
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com