KR900005283B1 - 마이크로프로그램 제어장치 - Google Patents
마이크로프로그램 제어장치 Download PDFInfo
- Publication number
- KR900005283B1 KR900005283B1 KR1019860000392A KR860000392A KR900005283B1 KR 900005283 B1 KR900005283 B1 KR 900005283B1 KR 1019860000392 A KR1019860000392 A KR 1019860000392A KR 860000392 A KR860000392 A KR 860000392A KR 900005283 B1 KR900005283 B1 KR 900005283B1
- Authority
- KR
- South Korea
- Prior art keywords
- address
- microinstruction
- microinstructions
- memory
- instruction
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/22—Microcontrol or microprogram arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/22—Microcontrol or microprogram arrangements
- G06F9/26—Address formation of the next micro-instruction ; Microprogram storage or retrieval arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/22—Microcontrol or microprogram arrangements
- G06F9/26—Address formation of the next micro-instruction ; Microprogram storage or retrieval arrangements
- G06F9/261—Microinstruction address formation
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Executing Machine-Instructions (AREA)
Abstract
내용 없음.
Description
제1도는 본원 발명의 실시예에 의한 마이크로프로그램 제어장치의 전체 구성을 나타내는 도면.
제1a도는 대표적인 마이크로명령의 한 실시예를 나타내는 설명도.
제2도는 제1도의 마이크로명령 제어장치의 동작을 설명하기 위한 타임차트.
제3도는 제1도의 마이크로프로그램 제어장치에 사용되는 마이크로프로그램 메모리의 구성을 나타낸 도면.
제4a도 내지 제4f도는 마이크로명령의 압축에 대한 변형예를 설명하는 설명도 및 표.
제5a도 및 제5b도는 압축 마이크로명령이 할당된 마이크로프로그램 메모리의 관계부분과 일련의 압축 마이크로명령의 일실시예를 나타내는 도면.
제6a도 내지 제6d도는 마이크로명령의 압축에 대한 다른 변형예를 설명하는 표.
제7a도 내지 제7c도는 마이크로명령의 압축에 대한 또 다른 변형예를 설명하는 표.
제8a도 및 제8b도는 일련의 마이크로명령의 다른 실시예 및 마이크로명령이 할당된 마이크로프로그램 메모리의 관계부분을 나타내는 도면.
제9도는 본원 발명의 다른 실시예에 의한 마이크로프로그램 제어장치의 전체 구성을 나타내는 도면.
본원 발명은 마이크로프로그램 메모리가 설치된 마이크로프로그램 제어장치에 관한 것으로, 특히 이 마이크로프로그램 메모리는 마이크로프로그램의 어드레스를 해독하는 디코더부와 마이크로프로그램의 마이크로 명령을 기억하기 위한 마이크로명령선택선을 통해 디코더부와 접속된 메모리부로 이루어져 있으며, 주메모리에서 독출된 매크로(macro)명령의 실행은 메모리부에서 매크로명령에 대하여 작성된 일련의 마이크로(micro)명령을 연속적으로 실행함으로써 완료된다. 특히, 본원 발명은 하드웨어량을 감소하여 구성될 수 있으며, 기억용량을 효율적으로 활용할 수 있고, 또 한편 일반적인 용도로서의 범용성과 유연성을 가지고 있으므로, LSI기술의 적용에 적합한 마이크로프로그램 메모리를 가진 마이크로프로그램 제어장치에 관한 것이다.
최근 MOS(Meta1 Oxide Semiconductor)기술의 현저한 진보에 의해 집적회로의 고집적화가 추진되고, 이에 따라서 고성능 및 고기능의 마이크로컴퓨터가 출현하였다. 이러한 배경하에서는 고집적화에 따라 논리의 복잡성이 수반되기 때문에 규칙적인 구조의 논리회조에 의하여 집적회로를 실현하는 방법의 발명에 노력이 집중되고 있다. 그 한가지가 마이크로프로그램 제어장치로서 알려져 있다.
이러한 장치에 있어서는, 전용적으로 사용하는 ROM(Read On1y Memory)으로 이루어지는 마이크로프로그램 메모리 또는 제어메모리가 통상적으로 설치되어 있다. 이 ROM에는 특정 매크로명령에 대응하는 다수의 일련의 마이크로명령이 기억되어 있다. 즉, 한개의 매크로명령은 매크로명령의 실행을 위하여 적절하게 준비되어 있는 복수의 마이크로명령으로 구성되어 있다. 여러가지 종류의 매크로명령에 대한 다수의 마이크로명령이 ROM에 기억되어 있지만, 특정 매크로명령의 실행을 완료하기 위한 마이크로명령은 어떤 다른 매크로명령에 개한 마이크로명령과 모두 완전히 다르다는 것은 드문 일이다. 이와 반대로 특정 매크로명령에 대한 어떤 마이크로명령이 다른 매크로명령에 대한 마이크로명령에 공통된 경우가 많이 있다. 어떤 경우에, 1매크로명령에 대한 마이크로명령은 양 마이크로명령에 포함된 후속 어드레스에 있어서의 차이를 제외하고 는 다른 매크로명령에 대한 기능과 같다. 종래의 장치에 있어서, 모든 마이크로명령은 마이크로명령의 내용이 다른 마이크로명령의 내용과 동일하든 그렇지 않든 각각 모든 마이크로명령이 각각 ROM의 어드레스 스페이스의 특정 어드레스로 할당되었다. 그 결과, ROM에 있어서 상당부분에 공통 비트패턴을 가진 복수의 마이크로명령이 존재했으므로 ROM이 비효율적으로 사용되었다. 이로 인하여 ROM의 필요한 기억용량을 증가시키는 결과를 초래하였다.
이러한 문제를 개선한 것으로서 일본국 특개소 제57-203141호가 제안되었다. 이에 의하면, 일반적 목적으로 사용할 수 있는 워드길이가 긴 마이크로명령을 기억하기 위한 제1마이크로프로그램 메모리와, 제한된 목적으로 사용되는 워드길이가 짧은 마이크로명령을 기억하기 위한 제2마이크로프로그램 메모리와, 워드길이가 짧은 마이크로명령이 메모리에서 독출된 경우에는 소정의 비트패턴을 가진 신호를 발생시켜 워드길이가 긴 마이크로명령으로 복원시킴으로써 워드길이가 짧은 마이크로명령에 발생된 신호를 가하는 비트패턴발생기가 설치되어 있다.
이와 같이 자주 사용되고 있는 마이크로명령은 ROM 용량의 사용효율을 증가시키기 위하여, 짧은 워드길이로 기입 및 기억된다. 이러한 장치는 ROM의 용량을 감소시키는 수단으로서 효율적이지만, 일반적 목적의 사용에는 범용성이 결여된다. 그것은 워드길이가 짧은 마이크로명령군을 형성하기 때문에 워드길이가 짧은 마이크로명령에 의하여 표현될 수 있는 처리내용이 제한되며, 짧은 워드길이의 마이크로명령이 다른 마이크로명령을 기억하기 위하여 사용될때, 모든 마이크로명령이 표현될 수 없기 때문이다. 또, 다른 명령체계의 매크로명령을 처리하기 위한 마이크로명령이 형성될때, 전용적으로 사용되는 마이크로명령군이 형성되는 워드길이가 짧은 마이크로프로그램은 모든 마이크로명령을 표현할 수 없다. 그 결과, 이러한 변형은 상기 비트패턴발생기에 의하여 발생된 것과 같이, 여러가지 종류의 비트 패턴을 발생하는 다른 비트패턴발생기를 구성할 필요가 있는 것이다. 그러므로, 워드길이가 짧은 마이크로명령을 기억하는 ROM은 일반적 목적으로서 범용성과 유연성이 결여되어 있다.
본원 발명의 목적은 일반적 목적으로 범용성이나 유연성을 감소시키지 않고 마이크로프로그램의 어드레스를 디코드하기 위한 디코더부와 마이크로프로그램을 형성하는 마이크로명령을 기억하기 위해 마이크로명령 선택선에 의하여 디코더부와 접속된 메모리부로 이루어진 마이크로프로그램 메모리의 기억용량을 효율적으로 활용할 수 있는 마이크로프로그램 제어장치를 제공하는데 있다. 본원 발명에 있어서, 소정의 관계를 가진 마이크로명령을 변형함으로써 최초의 마이크로명령과 이에 할당된 어드레스가 한개 이상의 변형마이크로명령과 여기에 할당된 변형 어드레스를 결합함으로써 복원될 수 있다. 본원 발명에 의한 마이크로프로그램 메모리는 상기 변형된 형태로 변형된 어드레스에 대응하는 위치에 마이크로명령을 기억한다. 원어드레스가 디코더에 가해질때, 최소한 마이크로명령선택선의 한개 이상이 활성화되며, 활성화된 마이크로명령선택선에 대응하는 변형 마이크로명령은 주 메모리로부터 독출된다. 독출된 변형마이크로명령은 원마이크로명령을 복원하기 위하여 논리적으로 결합된다.
본원 발명의 실시예에 의하면, 마이크로명령의 상기 변형은 임의적으로 기입된 어떤 특정 필드를 제외하고 마이크로명령의 상당한 필드(공통 필드)에 있어서의 공통 비트패턴, 즉 공통 코드를 가진 마이크로 명령 가운데서 이루어진다. 그러한 마이크로명령에 특정 원어드레스가 할당되며, 각 마이크로명령의 상기 특정 필드는 여기에 할당된 원어드레스에 대하여 소정 관계에 의해 코드된다. 원어드레스와 특수 필드의 코드가 변형되어, 원어드레스가 한개 이상의 변형된 어드레스를 결합함으로서 복원될 수 있으며, 특수 필드의 코드도 결합된 변형 어드레스에 대응한 특수 필드의 변형 코드를 논리적으로 결합함으로서 복원될 수 있다.
다른 실시예에 있어서, 마이크로명령의 변형은 공통 필드 및 마이크로명령의 일부의 특정 필드를 논리적으로 결합함으로써 얻어지는 비트패턴을 가진 특정 필드로 구성된 마이크로명령에 대하여 행해진다. 상기 마이크로명령중 어떤 것은 특정 마이크로명령의 특수 필드를 이루도록 결합된 마이크로명령에 할당된 어드레스를 논리적으로 결합함으로써 복원될 수 있는 비트패턴을 가진 어드레스가 할당된다.
본원 발명에 의하면, 마이크로명령은 메모리에 실제로 기억된 한개 이상의 다른 마이크로명령이 논리적으로 결합되므로 마이크로프로그램 메모리에 기억되는 마이크로명령수는 압축된다. 이러한 마이크로명령의 압축은 동일한 성능을 위한 메모리의 필요한 기억용량을 감소시킨다. 이에 따라서, 마이크로프로그램 메모리가 LSI 칩상에서 차지하는 면적을 감소시킬 수 있다. 이와 반대로, 본원 발명에 의하면 메모리의 일정한 기억용량으로 더 많은 마이크로명령을 실행할 수 있다. 이에 따라서, 고성능의 마이크로프로그램 제어장치를 얻을 수 있다.
또 본원 발명에 의하면, 상기 효과나 이점은 마이크로명령의 워드길이를 단축시키지 않고도 달성할 수 있다. 그러므로, 단축된 워드길이 마이크로명령으로 인하여 범용성이나 유연성이 크게 제한되지 않는다. 또, 종래 마이크로프로그램장치에 사용된 것과 같은 비트 패턴으로서 추가적 소자나 부품도 필요로 하지 않는다.
다음에, 본원 발명의 실시예에 대하여 도면에 따라서 상세히 설명한다.
제1도에 따라서 본원 발명의 실시예에 의한 마이크로프로그램 제어장치의 전체 구성에 대하여 설명한다.
(2)는 주메모리(도시되지 않음)에서 독출된 사용자 프로그램의 매크로명령을 일시 기억하는 명령 레지스터를 나타낸다. 이 경우에, 매크로명령은 8비트로 구성된다고 가정한다. 레지스터 (2)에 기억된 매크로명령은 어드레스선택기(4)로 보내지며, 이 선택기에는 후기하는 마이크로명령의 일부가 가해진다. 선택기(4)는 다음에 상세히 기술되는 마이크로명령의 일부인 신호(10Z)에 대응하여 레지스터(2)의 출력신호(2R) 또는 마이크로명령의 일부인(10Y)를 선택한다. 선택된 신호(4S)는 마이크로프로그램어드레스 레지스터(6)에 보내지며, 여기에서 일시 기억된다. 그 이유는 다음에 상세히 설명하지만 레지스터(6)는 명령레지스터(2)의 수보다 최소한 1비트 이상 더 많은 비트수를 가진다. 그러므로 이 경우에, 레지스터(6)는 9비트로 구성되며, 명령레지스터(2)는 8비트로 구성된다.
마이크로프로그램 어드레스 레지스터(6)의 내용(67)은 마이크로프로그램 메모리(8)에 입력된다. 내용(6T)에 대응하여, 마이크로명령은 메모리(8)에서 해독되어, 선(8W)을 통하여 마이크로명령레지스터(10)로 들어가서, 여기에서 일시 기억된다. 마이크로명령의 일부(10X)는 마이크로명령 디코더(도시되지 않음)에 가해지며, 여기서 신호(10X)가 해독되며, 여러가지의 제어신호가 해독결과에 따라 발생된다. 이들 신호는 주메모리, 오퍼레이팅장치, 주변장치 등과 같은 처리장치의 여러가지 부분을 제어한다. 그러므로, 이른바 오퍼레이션 코드는 이 부분(10X)에 포함되어 있다. 마이크로명령의 나머지부(10Y) 및 (10Z)는 상기와 같이 어드레스선택기(4)에 전송된다. 이 경우에, (10Y)는 8바트로 구성되며, (10Z)는 1비트로 구성된다. 따라서 래지스터(6)는 상기와 같이 9비트를 요한다.
통상적으로, 마이크로프로그램 메모리는 디코더부와 ROM으로 이루어진 마이크로프로그램 메모리부로 이루어진다. 본 실시예에 사용된 마이크로프로그램 메모리(8)에 있어서, 마이크로프로그램 메모리는 2부분으로 나누어진다. 그중 일부분은 제1차 마이크로프로그램 메모리어레이(82)이고, 다른 부분은 제2차 마이크로프로그램 메모리어레이(84)이다. 각 메모리어레이(82),(84)는 독립된 디코더(86),(88)를 가진다. 레지스터(6)에서 주어진 신호(67)는 디코더(86),(88)에서 디코드되며, 마이크로명령선택선(86U),(88V)에 의해 디코드의 결과에 따라 메모리어레이(82),(84)로 액세스된다.
마이크로프로그램 메모리(8)에서 디코드된 마이크로명령의 대표적인 실시예는 제1a도에 도시된 바와 같다. 이 실시예에 있어서, 마이크로명령은 기능상 서로 구별되는 복수의 필드에 의하여 작성된다. 제1필드는 후속 어드레스필드이다. 상기한 바와 같이 매크로명령의 실행은 일련의 마이크로명령을 연속적으로 실행함으로써 완료된다. 그러므로, 각 마이크로명령은 다음에 실행될 후속 마이크로명령의 어드레스를 포함한다. 이 필드의 내용은 그러한 어드레스를 가리킨다. 제2필드는 모드필드이며, 그 기능은 어드레스선택기(4)를 제어하는 것이다. 이 필드가 어떤 값, 즉 논리값 "1"을 취할 경우에, 선택기(4)는 명령레지스터(2)에서 신호(2R)를 선택하며, 이에 따라 마이크로프로그램 어드레스 레지스터(6)는 레지스터(2)의 내용, 즉 매트로명령을 취한다. 나머지 5필드는 어퍼레이션코드이다. 이들 기능을 간단히 나타내면 다음과 같다.
메모리제어 : 주메모리 또는 입/출력장치에 있어서의 독출/기입 동작의 개시제어
일시레지스터제어 : 산술논리오퍼레이션의 결과를 일시 기억하는 레지스터의 제어
ALU제어 : 산술논리장치의 오퍼레이션제어
상태코드제어 : 상태레지스터 또는 상태코드레지스터에 기억되는 정보의 제어
RAM제어 : RAM(Random Access Memory)에 구성된 레지스터의 독출/기입모드의 제어
이들 5개의 오퍼레이션로드필드는 전체적으로 제1도의 신호(10X)에 대응한다. 제1필드는 신호(10Y)에, 그리고 제2필드는 신호(10Z)에 대응한다.
다음에, 제2도의 타임차트에 따라 제1도의 장치의 동작에 대하여 설명한다. 제1도의 장치는 제2도의 [a] 및 (b)에 도시한 바와 같이, 두 장치클록 CK1 및 CK2에 의하여 활성화된다. 이들 클록 CK1 및 CK2은 주파수가 동일하며 180도의 위상차를 가지고 있다. 그러나, 클록 CK1 및 CK2간의 펄스폭의 오버랩핑기간은 없다. 그러면, 어떤 매크로명령의 실행이 완료되었고, 다음 매크로명령이 명령레지스터(2)의 주메모리에서 독출되었다고 가정한다(제2도의 (c)참조).
레지스터(2)는 제2도의 (d)와 같이 후속의 것이 독출될때까지 독출된 매크로명령을 유지한다. 통상적으로 매크로명령을 실행하기 위한 일련의 마이크로명령의 최후의 명령은 그 모드필드에서 논리값"1"를 가진다. 그러므로, 어떤 매크로명령의 실행 완료에 의하여 논리값"1"이 신호(10Z)로서 어드레스선택기(4)에 가해지며, 따라서 선택기(4)는 상기와 같이 신호(2R)를 선택한다. 따라서, 명령레지스터(2)의 내용은 제2도의 (e)와 같이 클록 CK1의 타이밍시에 마이크로프로그램 어드레스 레지스터(6)로 들어가며, 또 제2도의 (f)와 같이, 클록 CK2의 타이밍시에 디코더(86),(88)에 전송된다. 이와 동일한 클록내에서 마이크로명령은 메모리어레이(82),(84)에서 독출되어, 제2도의 (g)와 같이 마이크로명령레지스터(10)로 전송된다. 마이크로명령레지스터(10)는 제2도의 (h)와 같이 다음 마이크로명령이 입력될때까지 독출된 마이크로명령을 유지한다. 제1a도에 도시된 바와 같이, 마이크로명령은 다음에 실행될 마이크로명령이 기억되는 메모리(8)의 위치를 가리키는 어드레스를 포함한다.
후속어드레스는 신호(10Y)로서 어드레스선택기(4)로 전송된다. 또, 최후의 것을 제외한 마이크로명령은 그 모드필드에서 논리값"0"을 가진다. 상기의 경우에, 신호 "0"는 신호(10Z)로서 선택기(4)에 가해지며, 따라서 선택기(4)는 신호(10Y)를 선택한다. 앞의 마이크로명령에 포함된 후속어드레스는 제2도의 (e)와 같이 클록 CK1의 타이핑시에 마이크로프로그램 어드레스 레지스터(6)에 기억된다. 그후, 제2도의 (e)-(h)와 같이 상기와 같은 동작이 매크로명령에 대한 일련의 마이크로명령의 최후의 명령의 실행이 완료될때까지 클록 CK1,CK2에 대응하여 계속된다.
상기한 내용에 의하여 알수 있는 바와 같이, 매크로명령에 대한 일련의 마이크로명령의 엔트리는 통상적으로 사용되는 명령디코더에 의하지 않고 매크로명령 자체에 의하여 직접 지정되며, 이것은 엔트리 마이크로명령의 어드레스를 발생시키는 매크로명령을 해독한다. 즉, 매크로명령 자체는 엔트리마이크로명령의 어드레스에 대한 정보를 가진다. 상기와 같은 이른바 매핑 ROM장치와 같이, 주메모리에서 독출된 매크로명령 또는 여기에 포함된 오퍼레이션코드는 ROM에 기억된 마이크로프로그램의 엔트리마이크로명령의 위치를 가리키는 어드레스를 직접 지정할 수 있다. 제1도는 본원 발명이 상기와 같이 매핑 ROM형의 마이크로프로그램 제어장치에 구체화되어 있는 실시예를 나타낸다. 그러나, 본원 발명의 적용은 매핑 ROM장치에 제한되는 것은 아니고, 모든 종류의 마이크로프로그램 제어장치에 적용할 수 있다.
다음에, 이 실시예에 사용된 마이크로프로그램 메모리(8)의 상세한 구조에 대하여 제3도에 따라서 설명한다. 제1도의 신호의 표시에 사용되는 기호는 다음에 그대로 대응신호를 반송하는 선을 가리키는데 사용된다. 그리고, 마이크로프로그램 어드레스 레지스터(6)로부터의 출력신호는 마이크로프로그램 메모리(8)의 디코더(86),(88)의 모드선과 어드레스선에 전송된다. 상기한 바와 같이, 출력신호(6T)는 9비트로 구성되며, 이중 1비트는 선(10Z)을 통하여 공급되는 모드신호에 그리고 나머지 8비트는 선(10Y)을 통하여 보내진 후속 어드레스 신호에 대응한다. 제3도에 있어서, 0는 모드선이며, 선 1-8은 어드레스선이다. 이 모드선과 어드레스선은 두 디코더(86),(88)를 통하고, 이들 각 디코더는 한쌍의 선으로 구성되며, 이중 한선은 어드레스레지스터(6)의 대응 비트와 직접 접속되며, 다른 선은 인버터를 통하여 접속된다. 전자는 +선, 즉 +어드레스선이라고하며, 후자는 -선, 즉 -어드레스선이라 한다. 프로덕트텀라인(이하 텀라인이라고 한다)이라고 불리우는 마이크로명령선택선(86U),(88V)은 모든 모드선 및 어드레스선과 교차된다. 그러나, 제3도에서는 단지 6텀라인 만이 실시예로서 도시되어 있다. 텀라인과 모드선 또는 어드레스선의 선택된 교차점에서 NMOS 트랜지스터는 소스 및 드레인 전극이 텀라인과 접속되며, 게이트전극에는 제3도의 점선원 I에 도시된 바와 같이 모드선이나 어드레스선에 의하여 신호가 공급된다. 트랜지스터가 설치된 교차점은 비트패턴, 즉 마이크로명령에 할당된 어드레스의 코드에 따라서 결정된다. 즉, 트랜지스터는 다음의 규칙에 의하여 설치된다. 코드의 어떤 비트가 "1"일 경우에 트랜지스터는 텀라인과 어떤 비트에 대응한 +모드/어드레스먼과의 교차점에 설치된다. 그와 반대로 "0"이 코드의 다른 비트에 세트될 경우, 트랜지스터는 텀라인과 다른 비트에 대응하는 -모드/어드레스선과의 교차점에 설치된다. 또, 텀라인과 어떤 비트에 대응하는 + 및 -모드/어드레스선과의 교차점에 트랜지스터가 설치되지 않을 경우, 이는 그 비트가 돈트 케어 비트(Don't care bit), 즉 "0"도 "1"도 아닌 것으로서 취급된다는 것을 뜻한다. 텀라인은 또 클록선 CK2과 교차되며, 모든 교차점에서, NMOS 트랜지스터가 상기와 같이 설치된다. 제3도에 있어서 트랜지스터가 설치된 교차점은 작은 원으로 표시되어 있다. 모든 텀라인의 일단은 접지되어 있으며, 타단은 클록과 인버터에 의하여 구동되는 PMOS 트랜지스터를 통파여 메모리어레이(82),(84)로 연장되어 있다. 디코더(86),(88)에서 연장된 텀라인은 메모리어레이(82),(84)를 관통하는 복수의 데이터선과 교차되어 있다. 데이선의 수는 마이크로명령을 구성하는 비트수에 대응한다. 텀라인과 데이터선의 선택된 교차점에는 제3도에서 점선원 II에 도시된 바와 같은 방법으로 NMOS 트랜지스터가 설치되어 있다. 즉, 트랜지스터의 드레인전극은 데이터선과 접속되며, 소스전극은 접지된다. 이 트랜지스터는 데이터선을 접지시키기 위하여 텀라인을 통하여 게이트전극에 가해진 신호에 의하여 구동된다. 트랜지스터가 설치될 교차점은 비트패턴, 즉 메모리어레이(82),(84)에 기억될 마이크로명령의 코드에 의하여 결정되며, 그러한 교차점의 표시는 제3도에서는 생략되어 있다. 데이터선의 일단은 클록에 의하여 구동되는 대응 PMOS 트랜지스터를 통하여 전압소스 Vcc에 접속되어 있다. 이의 타단은 마이크로명령 레지스터(10)를 형성하는 클록인버터에 전송된다. 이들 클록인버터는 클록 CK2에 의하여 제어된다.
다음에, 제4a도-제4f도에 따라서 상기 마이크로프로그램 메모리(8)의 구성원리에 대하여 설명한다. 우선, 매크로명령 A,B,C 및 D가 제4a도의 마이크로스텝의 각 플로차트에 의하여 개략적으로 표시된 바와 같이 존재한다고 가정한다. 즉, 매크로명령 A는 마이크로스텝 A1,P 및 A2로 구성된다, 마찬가지로 매크로명령 B는 마이크로스텝 B1,P 및 B2로 구성되며, 매크로명령 C는 마이크로스텝 C1,P 및 C2로, 그리고 매크로명령 D는 마이크로스스텝 D1, P 및 D2로 구성된다. 따라서, 매크로명령 A,B,C 및 D는 모두 공통 마이크로스텝 P를 포함한다. 제4b도는 이러한 마이크로명령이 종래의 마이크로프로그램 메모리에 기억되는 방법을 나타낸다. 여기에서, 간단히 설명하기 위하여 3부분으로 나누어진 마이크로명령이 나타나 있다. 제1부분은 제1a도와 같은 모드필드이다. 마찬가지로 제2부분은 후속어드레스필드이며, 제3부분은 오퍼레이션코드를 포함하는 모든 나머지 필드로 구성된다. 이 도면에서 모드필드와 후속어드레스필드는 그 위치순서가 제1a도와 비교하여 바뀌어 있으나, 이는 설명의 편의를 위한 것 뿐이며, 본원 발명에 있어 중요한 것은 아니다. 할당어드레스 및 그 후속 어드레스 필드에 나타난 문자 A,B,C 및 d는 6비트, 즉 a : "010100 ", b : "10101", c : "10110" 및 d : "11000"으로 구성된 특수 비트패턴을 나타낸다. 그러므로, 후속 어드레스 "a01"는 "01010 001", 어드레스 "b00"는 "1010100"을 의미한다. 다른 경우에도 마찬가지로 적용된다.
할당어드레스에 나타낸 기호[A],[B],[C] 및 [D]는 이들이 매크로명령 A,B,C 및 D에 의하여 직접 지정되는 어드레스값을 가지고 있다는 것을 나타낸다. 즉, 매크로명령 A,B,C 및 D는 각각 이들 어드레스를 나타내는 비트패턴을 가진다. 또, 후속 어드레스 필드에 나타낸 기호[-]는 임의의 비트패턴을 이 필드에 대하여 취할 수 있다는 것을 나타낸다. 통상적으로 8비트는 모두 "0"으로 채워진다. 각 매크로명령에 대하여 일련의 마이크로명령의 최종 명령에만 이 기호가 존재한다는 것을 주의하여야 한다. 즉, 최종 마이크로명령의 후속 어드레스필드에는 특수한 값이 필요하지 않다. 왜냐하면, 다음에 실행될 마이크로명령의 어드레스는 후속 매크로명령에 의하여 주어진다. 마이크로명령의 제3부분에 있어서, 오퍼레이션 코드와 나머지 코드는 전체적으로 마이크로단계의 기호와 같은 것으로 표시되어 있다.
매크로명령 A의 실시예를 예로 들어 매크로명령의 실행에 대하여 간단히 설명한다. 첫째로, 주메모리에서 독출되는 매크로명령 A는 명령레지스터(2)에 기억되며, 어드레스[A]는 매크로명령 A에 의하여 지정된다. 이어서 어드레스[A]에 기억된 마이크로명령이 독출된다. 그다음 오퍼레이션코드 등, 독출된 마이크로명령에 포함된 A1이 독출, 실행된다. 동시에 모드 "0" 및 후속 어드레스 "a00"는 어드레스선택기(4)에 가해지며, 이 선택기는 모드가 "0"이므로 후속 어드레스 "a00"를 선택한다. 어드레스 "a00"에서의 마이크로명령이 독출되어, 오퍼레이션코드 등의 P에 의하여 오퍼레이션이 실행된다. 모드 "0" 및 후속 어드레TM"a01"가 어드레스선택기(4)로 보내진다. 또 이때, 선택기(4)는 모드가 "0"이므로 마이크로명령, 즉 "a01"에 포함된 후속 어드레스를 선택한다. 따라서, 어드레스 "a01"의 마이크로명령이 독출되며, 오퍼레이션코드 등의 A2에 의하여 오퍼레이션이 실행된다. 동시에 모드 "1" 및 후속 어드레스[-]가 어드레스 선택기(4)로 보내진다. 매크로명령 A의 실행은 이 마이크로명령의 실행을 끝냄으로써 완료된다. 모드 "1"에 대응하여 선택기(4)는 매크로명령 A의 후속으로 주기억장치로부터 명령레지스터(2)로 독출된 새매크로명령을 선택한다. 매크로명령 B,C 및 D의 경우에도 이들의 실행은 같은 방법으로 행해진다.
제4b도에서 알수 있는 바와 같이, 오퍼레이션로드 P를 포함한 마이크로명령은 거의 동일 비트패턴을 가지며, 후속 어드레스필드에서만 차이가 있다. 이와 같이 종래 메모리에 있어서, 어떤 특정 필드를 제외하고 필드의 상당 부분에서 공통 비트패턴을 가진 복수의 마이크로명령이 존재하며, 이들 각 마이크로명령은 메모리의 어드레스 스페이스내에 특별 어드레스를 차지한다. 이로 인하여 메모리의 비효율적인 사용을 가져오며, 어떤 경우에는 메모리용량을 불필요하게 증가시킨다.
이러한 폐단을 해소하기 위하여, 본원 발명에 의하연 마이크로명령은 마이크로명령에의 어드레스의 할당 및 다음과 같이 작성된 마이크로프로그램에의 할당에 대한 변형에 의하여 감소된 마이크로명령수로 압축된다. 첫째로, 압축하는데 고려될 모든 마이크로명령 가운데서 마이크로명령에 임의로 기록된 특수 필드를 제외한 필드에서 마이크로코드(즉, 비트패턴)가 서로 공통인 마이크로명령이 모두 집합된다. 공통 마이크로코드를 가진 필드는 이하 공통 필드라고 부른다.
상기와 같이 집합된 마이크로명령의 결과는 제4c도에 도시된 바와 같아, 이 경우에 상기 특정 필드는 후속 어드레스필드이다. 여기서, 어드레스 "a00", "b00" ,"c00" 및 "d00"의 집합된 마이크로명령은 설명의 편의를 위하여 이하 각각 Pa,Pb ,Pc 및 Pd라고 한다. 다음에, 집합된 마이크로명령은 각 마이크로명령이 마이크로프로그램 메모리에서 독출될때, 사용되는 할당된 특별 어드레스이다. 이들 할당 어드레스는 이하 원어드레스라고 한다. 제4d도에 있어서 마이크로명령 Pa,Pb,Pc 및 Pd는 각각 할당된 원어드레스 "J00","J01", "J10" 및 ""J11"이며, 여기서 J는 6비트로 주어진 비트패턴을 가리키며, 마찬가지로 제4b도의 A,B,C및 d를 가리킨다. 제4d도에서 명백한 바와같이, 할당된 원어드레스는 공통 비트패턴 J을 가진 일부와 각 원어드레스에 대하여 특정 비트패턴을 가진 일부로 구성되어 있다. 설명의 편의를 위하여 이하 전자는 공통비트, 그리고 후자는 식별 비트라고 하기로 한다. 식별 비트는 모든 집합된 마이크로명령의 어드레스에서 식별을 표현하는데 충분한 비트수를 가진다. 제4d도의 경우에, 집합된 마이크로명령의 수는 4이기 때문에 "0", "1", "10" 및 "11"과 같은 2비트는 이 목적을 위하여 사용된다. 이들 마이크로명령의 특정 필드, 즉 이 경우에는 후속 어드레스 필드의 코드는 각 마이크로명령에 할당된 원어드레스와의 소정 관계에 의하여 결정된다. 제4d도의 경우에, 원어드레스 J00". "J01". "J10" 및 "J11"에 각각 할당된 마이크로명령 Pa,Pb,Pc 및 Pd에 관련하여, 코드 "K00", "K01", "K10" 및 "K11"가 각 후속 어드레스 필드에 주어지며, 여기서 K도 6비트로 구성된 일정 비트패턴을 나타낸다.
상기 소정 관계는 공지의 해밍(hamming) 거리에 따라 아래와 같이 설명된다. 즉, 마이크로명령이 할당된 원어드레스 순으로 배치될때, 서로 인접한 마이크로명령의 할당 원어드레스간의 해밍거리는 2마이크로명령에 포함된 특정 필드의 마이크로 코드간의 거리와 같으며, 또 집합된 마이크로명령의 수는 m이고, 또 허용 가능한 해밍거리의 최대치는 n이라 가정할때 다음과 같은 관계가 충족된다.
제4e도는 제4d도의 어드레스의 할당에 관련된 상기 관계를 검토한 결과를 나타낸 표이다. 이 표에서 명백한 바와같이, 예를들면 마이크로명령 Pa 및 Pb의 할당 어드레스간의 해밍거리는 여기에 포함된 후속 어드레스간의 거리와 같다. 또 집합된 마이크로명령의 수 m가 4이므로 해밍거리의 최대치 n는 마이크로거리 Pb,Pc 및 Pd,Pa간의 거리와 같이 2이다. 즉, 상기 소정 관계를 더욱 일반적으로 설명하면, 상기 관계식(1)을 충족시키는 2마이크로명령에 관련하여 이들 마이크로명령의 특정 필드의 코드는 마이크로명령의 원어드레스간의 거리와 동등하게 결정된다.
제4d도로부터, 마이크로명령 Pd의 비트패턴은 나머지 3마이크로명령의 논리 가산에 의하여 실현될 수 있다는 것을 주의하여야 한다. 이러한 사실을 고려할때, 마이크로명령은 마이크로프로그램메모리에 할당되도록 변형된다. 제4f도에 있어서는, 이 변형방법에 대하여 설명한다. 첫째로, 공통 필드와 특정 필드에 어떤 마이크로코드를 자진 변형 마이크로명령(이하 제1차 마이크로명령이라 함)이 설정되어 있다. 제4f도에 있어서, 오퍼레이션 코드 필드에 코드 "P"를 가지며, 후속 어드레스 필드에 코드 "K00"를 가진 마이크로명령은 제1차 마이크로명령이다. 제1차 마이크로명령에 할당된 어드레스 코드의 식별 비트는 모두 "0"이나 "1"를 갖지 않는 돈트 케어 비트로 되어 있다. 여기에서 코드 "J**"로 표현된 어드레스는 제1차 마이크로 명령에 할당되며, 여기서, 부호*는 돈트 케어 비트를 가리킨다. 상기와 같이 이러한 돈트 케어 비트는 표시된 비트의 한쌍의 어드레스선이 텀라인과 교차되는 두 점에 트랜지스터를 설치하지 않음으로써 얻어진다.
또한, 복수의 어드레스 코드를 준비하며, 이들 어드레스의 식별 비트의 하나는 "0" 또는 "1"의 케어 비트이며, 나머지 비트는 돈트 케어 비트로 작성되며, 준비된 어드레스 코드의 일정 결합의 논리가산에 의하여, 집합된 모든 마이크로명령의 원어드레스가 복원될 수 있다. 제4f도의 실시예에 있어서, 어드레스 코드 "J*1" 및 J1*"가 준비된다. 어드레스 "J**'"를 포함한 이들 어드레스 "J*1" 및 J1*"은 이하 변형 어드레스라고 한다. 각 변형 마이크로명령의 공통 필드가 할당되며, 이렇게 준비된 어드레스 코드는 어드레스 코드의 모든 비트가 "0"이거나 제1차 마이크로명령의 공통필드의 비트와 같은 비트패턴이다. 제4f도에 있어서, 기호는 비트가 모두 "0"인 것을 가리킨다. 각 제2차 마이크로명령의 특정 필드는 다음과 같이 변형된다.
즉, 공통 비트에 대응하는 부분은 모든 비트에서 "0"이거나 제1차 마이크로명령에서 특정 필드의 공통 비트와 같은 비트패턴이다. 특정 필드의 식별 비트는 최소한 1비트에서 "1"을 갖도록 코드되며, 변형 어드레스의 결합에 의하여 복원된 원어드레스의 마이크로명령에 있어서의 식별 비트의 비트패턴은 결합된 변형 어드레스에 대응하는 제2차 마이크로명령의 결합의 논리가산에 의하여 생성될 수 있다.
예를들면 마이크로명령 Pc이 오퍼레이션 코드 필드에서의 코드 "P" 그리고 후속 어드레스 필드에서의 코드 "K10"을 가진 것으로부터 독출된다고 가정한다. 이를 독출하기 위하여 원어드레스 "J10"가 지정(제4d도 참조)되어야 한다. 다음에, 제4f도에 있어서 제2차 마이크로명령에 있어서의 오퍼레이션 코드 필드 및 후속 어드레스 필드의 공통 비트의 모든 비트가 "0"을 작성한다고 가정한다. 이때에, 변형 어드레스 "J**" 및 "J1*"가 논리가산에 의하여 결합될 경우, 원어드레스 "J10"이 복원될 수 있다. 그것은 돈트 케어 비트가 기능상 "0"과 동등하게 간주할 수 있기 때문이다. 논리가산으로 이들 어드레스 "J**" 및 "J1*"에 대웅한 변형 마이크로명령을 결합함으로서 오퍼레이션 코드 " P"를 얻을 수 있으며, 후속 어드레스 필드의 코드는 "K10"이 된다.
메모리로의 마이크로명령의 할당은 제4f도에 도시된 바와같이 변형에 의하여 행해진다.
제5a도 및 제5b도에 있어서, 제4f도에 도시된 바와같이 변형 마이크로명령이 제3도의 마이크로프로그램메모리(8)에 할당됨으로서 완전한 구조로 된다. 이 경우에, 비트패턴 J 및 K는 각각 "11000" 및 "11001" 이라고 가정한다. 그러므로, 원마이크로명령 Pa,Pb,Pc 및 Pd는 제5a도에 나타낸 바와같다. 제4f도의 변형마이크로명령에 의하여 디코더(86),(88) 및 메모리어레이(82),(84)의 모든 선은 제5b도와 같이 배선되어있다. 이 도면은 제3도와 같이 마이크로프로그램모메모리(8)의 관계 부분만을 나타낸다. 코드 "1100000"(마이크로명령 Pa의 할당 어드레스)가 어드레스 1-8(여기에서의 모드필드가 "0"이라고 가정함)에 가해질경우, 클록에 의하여 프리차지된 텀라인(86U1)만이 클록 CK2과 동기하여 접지되며, 따라서 메모리어레이(82)의 텀라인(86U1)은 고레벨로 유지된다. 메모리어레이(82),(84)의 텀라인의 이러한 상태는 이하 "활성화"라고 한다. 그 결과 텀라인(86U1)이 교차한 점에 트랜지스터를 가진 메모리어레이(82),(84)의 데이터선이 접지하므로 코드 "1100100"이 선(10Y)에 나타난다. 따라서, 후속 어드레스 필드의 코드 "1100100"와 더불어 마이크로명령 Pa은 원어드레스 "1100000"를 지정함으로써 독출될 수 있다. 독출된 마이크로명령 Pa의 오퍼레이션 코드 "P"는 선(10X)에 나타나지만, 선(10X)에 대응하는 데이터선은 이 도면에서 생략되어 있다.
또, 코드 "1100001"(마이크로명령 Pb의 할당 어드레스)가 어드레스선 1-8에 가해질 경우, 텀라인(86U1) 및 (88V1)이 활성화되고, 따라서 텀라인(86U1) 및 (88V1)이 교차하는 곳에 트랜지스터를 가지고 있는 데이터선이 접지되며, 이리하여 모드 "1100101"이 선(10Y)에 나타난다. 물론 이 경우에, 텀라인(86U1)에 의하여 독출되는 오퍼레이션 코드 "P"는 선(10X)에 나타난다. 원어드레스 "1100001"를 지정함으로써 마이크로명령 Pb이 독출될 수 있다. 더욱이, 코드 "1100011"(마이크로명령 Pb의 할당 어드레스)가 어드레스선 1-8에 가해질때, 텀라인(86U1),(88V1) 및 (88V2)이 활성화 되고, 따라서 텀라인(86U1),(88V1) 및 (88V2)이 교차하는 곳에 트랜지스터를 가지고 있는 데이터선이 접지된다. 그 결과, 코드 "1100111"는 선(10Y)에 나타난다. 또, 이 경우에 텀라인(86U1)에 의하여 독출되는 오퍼레이션 코드 "P"는 선(10X)에 나타난다. 마이크로명령 Pb은 어드레스 코드 "1100011"를 지정함으로써 독출될 수 있다.
제5b도에서 명백한 바와같이, 변형 마이크로명령의 제1차 명령은 제1차 마이크로프로그램 메모리어레이(82)에 기억되며, 이와 결합된 디코더(86)는 제1차 마이크로명령에 할당된 변형 어드레스의 비트패턴에 의하여 배선된다. 마찬가지로 변형 마이크로명령의 제2차 명령은 제2차 마이크로프로그램 메모리어레이(84)에 기억되며, 이와 결합된 디코더(88)는 제2차 마이크로명령에 할당된 변형 어드레스의 비트패턴에 의하여 배선된다. 이 실시예에 있어서, 상기와 같이 4개의 필요한 마이크로명령은 1개의 제1차 마이크로명령 및 2개의 제2차 마이크로명령에 의하여 실현되며, 즉 3개의 변형 마이크로명령은 실제로 마이크로프로그램 메모리에 기억된다. 즉, 본 실시예에 의하면, 4개의 원마이크로명령은 3마이크로명령으로 압축된다. 공통필드를 가진 마이크로명령이 많이 집합될수록 더 큰 효과를 얻을 수 있다.
제6a도는 공통 비트패턴 P을 가진 8마이크로명령 Pa-Ph이 집합되어 있는 다른 실시예를 나타낸다. 제4c도와 마찬가지로, 코드 "a00"-"h00"는 각각 마이크로명령 Pa-Ph에 할당된 어드레스를 가리키며, 또 코드 "a01"-"h01"는 각 마이크로명령 Pa-Ph에 포함된 후속 어드레스 코드이다. 이들 마이크로명령에 대하여, 원어드레스의 할당 및 특정 필드의 코드화는 상기 방법에 의하여 행한다. 이에 관한 결과는 제6b도에 나타나 있다. 이 경우에 3비트로 된 식별 비트는 8마이크로명령과 어드레스에 식별을 표시하기 위하여 어드레스 코드로 준비되어야 한다. 그러므로, 마이크로명령에 할당된 원어드레스의 공통 비트 J'와 후속 어드레스의 공통 비트 K'는 5비트로 구성된 일정 비트패선을 가지며, 제4d도와 같은 경우에, 어드레스 코드는 총8비트로 구성된다. 또, 변형의 결과는 제6c도에 나타낸 바와같다. 오퍼레이션 코드 필드에 코드 "P" 그리고 후속 어드레스 필드에 코드 "K'000"를 가진 변형 마이크로명령의 제1차 명령은 수정어드레스 "J'***"가 할당된다. 이 실시예에 있어서, 변형 마이크로명령의 3개의 제2차 명령의 오퍼레이선 코드 필드는 모든 비트에서 "0"을 작성한다. 3개의 제2차 마이크로명령중 1명령은 변형 어드레스 "J'**1"로 할당되며, 후속 어드레스 필드에 코드 " 001"을 가지며, 또 하나의 다른 명령은 변형 어드레스 "J'*1*"로 할당되며, 후속 어드레스 필드에 코드 " 010"를 가진다. 후속 어드레스 필드에 코드 "100"를 가진 최종 제2차 마이크로명령은 변형 어드레스 "J'1**"로 할당된다.
제5b도에 나타낸 바와같은 방법으로 디코더(86),(88)는 변형 코드 "J'***", "J'**1", "J'*1*" 및 "J'1**"에 의하여 배선된다. 메모리어레이에 있어서, 오퍼레이션 코드 "P" 및 후속 어드레스 필드의 코드 "K'000"는 제1차 마이크로프로그램 메모리어레이(82)의 변형 어드레스 "J'***"에 대응하는 위치에 기억되며, 오퍼레이션 코드 "" 및 후속 어드레스 코드 "1" 의 변형 마이크로명령중 1개, 오퍼레이션 코드 "" 및 후속 어드레스 코드 " 010"의 또 하나의 다른 명령, 그리고 오퍼레이션 코드 "" 및 후속 어드레스 코드 "100"의 최후의 명령을 제2차 마이크로프로그램 메모리어레이(84)의 각 대응 어드레스에 기억된다. 이 실시예에 있어서 8개의 마이크로명령은 마이크로프로그램메모리(8)에 실제로 기억된 4개의 변형 마이크로명령으로 압축시킬 수 있다.
또, 제6b도에 있어서, 특정 마이크로명령에 포함된 후속 어드레스 필드의 식별 비트는 그 마이크로명령에 할당된 원어드레스와 동일한 비트패턴을 가지고 있다. 제4d도의 경우도 마찬가지이다. 그러나, 할당 원어드레스와 후속 어드레스 필드간에 반드시 서로 일치하는 식별 비트의 비트패턴을 만들 필요는 없다. 제6b도의 점선으로 작성된 표에 있어서, 후속 어드레스 필드의 식별 비트의 비트패턴은 할당 원어드레스의 비트패턴과 반드시 동일하지는 않다. 비록 그러한 경우에로 원어드레스의 할당 및 후속 어드레스 필드의 코드화가 상기와 같은 원리에 의하여 행하여질 경우에는 마이크로명령의 압축이 가능하다. 제도는 제6b도의 점선으로 표시된 실시예에 대하여 해밍거리를 검토한 결과를 나타낸다. 그 결과는 실선으로 나타낸 표의 경우와 동일하다는 것을 이해할 필요가 있다. 제6c도의 점선의 표에 있어서, 제6b도의 점선의 표와 같이 실시예에 의하여 얻어지는 변형 마이크로명령에 있어서의 후속 어드레스 필드의 코드화의 결과를 나타난다.
제7a도-제7c도는 마이크로명령의 압축의 다른 실시예를 나타낸다. 제7a도와 같이 집합된 마이크로명령 Pa-Qh에서 명백한 바와같이, 이 실시예에 있어서, 다른 오퍼레이션 코드 "P" 및 "Q"가 여기에 포함되어 있다. 또, 모든 오퍼레이션 코드에 관하여, 4개의 마이크로명령이 집합되며, 이들은 각각 후속 어드레스 필드에 있어서 다른 비트패턴을 가지고 있다. 즉, 이 실시예에 있어서, 마이크로명령의 압축은 마이크로명령군에 대하여 행하며, 각 명령군은 특정 오퍼레이션 코드를 가지고 있다. 첫로 마이크로명령군을 통하여 원어드레스의 할당과 후속 어드레스 필드의 코딩은 상기 원리에 의하여 행하여진다. 그리고, 이에 대한 결과는 제7b도에 표시되어 있다. 각 군에 속해 있는 마이크로명령수는 4이지만, 원어드레스 코드 및 후속 어드레스 필드이 식별 비트에 대하여 3비트가 설정된다. 왜냐하면 압축은 목적으로 집합된 마이크로명령의 총수는 8이고, 3비트코드가 8어드레스의 식별을 표현하기 위하여 필요하기 때문이다. 마이크로프로그램메모리에의 할당에 대한 변형은 다음과 같이 행하여진다. 오퍼레이션 코드 "P"를 가진 마이크로명령군에 관하여, 다음의 변형이 제4a도-제4f도와 같은 방법으로 가능하다.
같은 방법으로 오퍼레이션 코드 "Q"를 가진 마이크로명령군에 대하여,
상기 두 표에서, 두 세트의 제2차 마이크로명령은 각 할당 어드레스의 식별 비트의 제1비트를 제외하고, 서로 공통이다. 이 비트가 돈트 케어 비트를 작성할 경우, 즉 두 세트의 제2차 마이크로명령에 있어서의 할당 어드레스의 식별 비트가 "J'**1" 및 "J'*1*"로 작성될 경우에, 그러한 두 세트의 제2차 마이크로 명령은 매우 공통적이며, 따라서 이들은 오퍼레이션 코드 "P"를 가진 제1차 마이크로명령과 오퍼레이션 코드 "Q"를 가진 제1차 마이크로명령을 결합하는데 사용될 수 있다. 그러므로, 제7c도와 같이 변형 마이크로명령을 얻을 수 있다. 이 실시예에 있어서, 다른 오퍼레이션 코드를 가진 8마이크로명령은 4개의 변형 마이크로명령으로 압축되며, 이들은 2개의 제1차 마이크로명령과 2개의 제2차 마이크로명령으로 구성된다.
본원 발명의 방법에 의한 압축의 효과에 대하여 일반적으로 다음과 같이 말할 수 있다. 즉, 같은 마이크로코드, 즉 같은 비트패턴을 가진 집합된 마이크로명령의 수가 2T(n=0,1,2‥‥‥)일 경우에 그러한 마이크로명령은 변형 마이크로 명령 n+1개로 압축할 수 있다. 또, 그렇게 집합된 마이크로 명령이 m군 있으므로, 마이크로 명령의 총수가 2T×m(m=1,2,3‥‥‥)일 경우, 그러한 마이크로 명령은 변형 마이크로명령 n+m개로 압축될 수 있다.
상기 실시예에 있어서, 압축에 대하여 임의로 기록한 특정 필드는 후속 어드레스 필드이었다. 그러나, 특정 필드는 여기에 재한되지 않는다. 마이크로 명령의 압축은 비록 다른 필드가 상기 특정 필드로서 기입되어도 가능하다. 제8a도 및 제8b도는 오퍼레이션 코드필드가 특정 필드로서 기입된 경우를 나타낸다. 제8a도와 같이 3개의 마이크로명령 u,v 및 w이 존재하며, 이들은 할당 어드레스 "1010010", "1010100" 및 "1010110"이며, 그 오퍼레이션 코드 필드에 각각 코드 "101", "11000" 및 "11101"을 갖는다고 가정한다. 이 실시예의 경우에, 마이크로명령 W에 있어서의 할당 어드레스의 비트패턴과 오퍼레이션 코드 필드는 마이크로명령 U 및 V의 비트패턴의 논리가산에 의하여 얻을 수 있다. 제8b도는 마이크로프로그램메모리(8)의 구체적 구조를 나타내며, 제8a도의 마이크로명령이 할당될 때의 관계부분을 나타낸다. 각 6비트의 오퍼레이션 코드는 메모리어레이(82)의 연속 데이터션에서 이루지지지 않고 분산적으로 할당된다. 즉 처음의 3비트는 데이터선 X2, X3, X4,에, 그리고 나머지 비트는 데이터선 Xj-1, Xj, Xj+1에 할당된다.
그리고, 코드 "1010010"가 어드레스선 1-8(이때에, 모드는 "0"이라고 가정함)에 가해질 경우에, 텀라인(86U2)이 활성화되며, 따라서 오퍼레이션 코드 "101"는 선(10X)의 대응 비트에 나타난다. 그러므로, 마이크로명령 U는 여기에 할당된 어드레스 "1010010"를 지정함으로써 독출될 수 있다. 마찬가지로, 코드 "1010100"가 어드레스선 1-8에 가해질 때, 텀라인(86U3)이 활성화되고, 따라서 오퍼레이션 코드 "11000"는 선(10X)의 대응 비트에 나타난다. 따라서 마이크로명령 V는 여기에 할당된 어드레스 "1010100"를 지정함으로써 독출될 수 있다. 코드 "1010110"가 어드레스선 1-8에 가해질 경우에, 텀라인(86U2) 및 (86U3)은 동시에 활성화되고, 따라서 활성화된 선(86U2)에 의하여 독출되는 코드 "101"와 활성화 된 텀라인(86U3)에 의하여 독출되는 코드 "11000"는 대응 데이터선에 나타난다. 이는 독출된 두 코드가 논리가산된 것과 같다. 그 결과 오퍼레이션 코드 "11101"는 선(10X)의 대응 비트에 출력된다. 즉, 마이크로명령 w은 마이크로명령 U 및 V의 논리가산으로서 독출되며, 실제로 메모리어레이(82)에 기억된다.
제9도에는 본원 발명의 또 다른 실시예에 의한 마이크로프로그램 제어장치의 전체 구성이 도시되어 있다. 이 도면에 있어서, 동일 숫자나 부호는 제1도에 도시된 것과 같은 것을 가리킨다. 제1도의 실시예와 다른 특징은 주메모리(도시되지 않음)에서 공급되는 매크로명령의 디코드와 마이크로프로그램메모리(8)에서 독출되는 마이크로명령의 일부(후속 어드레스 필드)가 별개의 두세트의 디코더(861),(881) 및 (862),(882)에 의하여 행하여진다는데 있다. 즉, 주메모리로부터 독출되어, 명령레지스터(2)에 기억된 매크로명령은 1세트의 디코더(861),(881)에 의하여 디코드되며, 제1차 및 제2차 마이크로프로그램 메모리어레이(82),(84)에의 액세스는 선(861U) 및 선(881V)에 의하여 작성된다.
마이크로명령레지스터(10)에서 보내진 마이크로 명령의 일부는 마이크로프로그램어드레스레지스터(6)에 일시 기억되며, 도 다른 세트의 디코더(862) 및 (882)에 의하여 디코드된다. 그러므로, 제1차 및 제2차마이크로프로그램 메모리어레이(82) 및 (84)에의 액세스는 선(862U) 및 선(882V)에 의하여 이루어진다.
메모리어레이(82) 및 (84)가 디코더(861) 및 (881)에서 액세스할때, 즉 매크로명령에 의한 액세스의 경우에, 메모리어레이(82) 및 (84)에서 독출된 마이크로명령은 선(8W1)을 통하여 멀티플렉서(12)로 전송되며, 또 메모리어레이(82),(84)가 디코더(862),(882)에서 액세스할 때, 독출된 마이크로명령은 선(8W2)을 통하여 멀티플렉서(12)로 전송된다. 멀티플렉서(12)는 마이크로프로그램어드레스레지스터(6)에서 가해지는 신호(6L)에 대응하여 선(8W1) 및 선(8W)을 통해서 전송된 마이크로명령의 어느 한개를 선택하며, 마이크로 명령레지스터(10)로 선택된 마이크로명령을 출력한다.
어드레스레지스터(6)로부터의 신호(6L)는 두 세트의 디코더(861),(881) 및 (862)(882)의 오퍼레이션의 스위치오버를 제어한다. 즉, 신호(6L)는 디코더(861),(881)에 직접 전송되며, 인버터(14)를 통해서 디코더(862),(882)에 전송된다. 신호(6L)는 모드필드에 대응하여 발생되며, 이 신호는 마이크로명령에 포함되어 있으며, 상기한 바와 같이, 선(10Z)을 통하여 어드레스레지스터(6)에 공급된다. 모드필드가 "0"일 경우에, 저레벨의 신호(6L)가 발생된다. 저레벨신호(6L)가 발생되면 메모리어레이(82),(84)에 디코더(862),(882)를 액세스시키기 위해 인버터(14)에서 반전되어 디코더(861),(881)가 메모리어레이(82),(84)에 액세스할 수 없게 된다. 동시에, 저레벨신호(6L)는 멀티플렉서(12)로 하여금 선(8W2)을 통해 전송된 마이로 명령을 선택하게 한다. 이와 반대로, 모드필드을 통해 전송된 마이크로명령을 선택하게 한다. 이와 반대로, 모드필드가 "1"일 경우에, 신호(6L)는 고레벨로 된다, 고레벨신호(6L)는 디코더(861),(881)에 전송되며, 따라서 매크로명령에 의하여 발생되는 메모리어레이(82),(84)에의 액세스가 허용된다. 이때에, 멀티플랙서(12)는 고레벨신호(6L)에 대응하여 선(8W1)을 통해서 독출되는 마이크로명령을 선택한다. 멀티플렉서(12)에서 선택된 마이크로명령은 마이크로명령레지스터(10)에 일시 기억된다. 오퍼레이션 코드필드를 포함하는 기억된 마이크로명령의 일부는 선(10X)을 통하여 마이크로 명령디코더(도시되지 않음)로 보내지며, 여기서 디코드되고, 각종의 제어신호가 발생되어 마이크로명령을 길행한다. 후속 어드레스필드 및 모드필드를 포함하는 레지스터(10)에 기억된 마이크로명령의 나머지 부분은 선(10Y) 및 (10Z)를 통하여 마이크로프로그램 어드레스레지스터(6)로 전송된다. 그 다음의 오퍼레시션은 상기와 같다.
상기 장치에 있어서, 마이크로프로그램메모리(8)는 디코더(861),(881) 및 (862),(882)의 출력이 신호(6L)에 대응하여 게이트화된것을 제외하고, 제1도와 거의 같은 방법으로 구성되어 있다. 따라서, 메모리어레이 (82),(84)에의 마이크로명령의 할당과 디코더(861),(881),(862),(882)는 제1도의 실시예와 관련하여 기술된 방법으로 배선된다.
제1도 보다 이 실시예의 효과의 우수한 점은 일정 마이크로명령이 독출될 때부터 그 다음 마이크로명령이 독출될 때까지의 시간이 단축되는 것이다. 왜냐하면, 제1도에 사용된 어드레스선택기(4)가 생략되어 있기 때문이다. 실제로 이러한 시간을 마이크로프로그램 제어장치의 성능에 큰 형향을 미친다. 그러므로, 이러한 시간의 단축은 장치의 성능을 보다 크게 향상시키는 효과를 가져온다.
Claims (5)
- 관련된 복수의 마이크로명령을 연속적으로 실행함으로써 주메모리에 기억된 매크로명령을 실행하는 마이크로프로그램 제어장치에 있어서, 마이크로명령에 포함된 공통 비트패턴에 따라서 변형된 형태로 마이크로프로그램의 마이크로명령을 기억하는 메모리어레이(82,84)와, 마이크로프로그램의 어드레스를 디코드하고, 가해진 어드레스에 따라서 상기 메모리어레이(82,84)에 결합된 최소한 한개 이상의 마이크로명령선택선(86U,88V ; 861U,881V,862U,882V)을 활성화시키는 디코더(86,88 : 861,881, 862U,882V)와, 상기 디코더(86,88 : 861,881,862,882)에 의한 상기 마이크로 명령선택선(86U,88V,861U,881V,862U,882V)의 활성화에 따라 상기 변형 마이크로명령을 선택적으로 결합하여, 복원된 형태의 마이크로명령을 작성하는 마이크로명령레지스터(10) 및 멀티플렉서(12)를 포함하는 것을 특징으로 하는 마이크로프로그램 제어장치.
- 제1항에 있어서, 매크로명령과 관련된 일련의 마이크로명령의 엔트리마이크로명령의 어드레스는 상기 주메모리로부터 독출된 매크로명령에 의해 직접 지정되는 것을 특징으로 하는 마이크로프로그램 제어장치.
- 제2항에 있어서, 상기 디코더는 상기 주메모리로부터 독출된 매크로명령을 디코드하여 최소한 한개 이상의 마이크로명령선택선(861U,881V)을 활성화시키는 디코더(861,881)와 마이크로명령을 디코드하여 최소한 한개 이상의 상기 마이크로명령선택선(862U,882V)을 활성화시키는 디코더(862,882)로 이루어지는 것을 특징으로 하는 마이크로프로그램 제어장치.
- 제1항에 있어서, 공통 필드의 비트패턴을 포함하는 제1차 마이크로명령은 상기 공통필드의 상기 비트패턴에 따라서 배선된 특정 마이크로명령선택선(86U ; 861 U,862U)이 원마이크로명령의 어드레스에 따라서 활성화되는 것을 특징으로 하는 마이크로프로그램 제어장치.
- 제1항에 있어서, 상기 마이크로명령의 특정 필드에서의 비트패턴을 포함하는 제1차 마이크로명령은 다른 마이크로명령의 특정 필드에 논리적으로 결합된 비트패턴에 의해 형성되고, 상기 제1 차 마이크로명령은 메모리어드레스와 함께 할당되며, 상기 제1차 마이크로명령의 상기 할당된 메모리어드레스의 비트패턴은 다른 마이크로명령의 메모리어드레스의 비트패턴이 논리적으로 결합됨으로써 복원되며, 상기 디코더(86, 88 : 861,881,862,882)는 상기 할당된 어드레스에 따라 배선되는 것을 특징으로 하는 마이크로프로그램 제어장치.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP60011520A JPS61170828A (ja) | 1985-01-24 | 1985-01-24 | マイクロプログラム制御装置 |
JP85-11520 | 1985-01-24 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR860006060A KR860006060A (ko) | 1986-08-18 |
KR900005283B1 true KR900005283B1 (ko) | 1990-07-27 |
Family
ID=11780258
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019860000392A KR900005283B1 (ko) | 1985-01-24 | 1986-01-22 | 마이크로프로그램 제어장치 |
Country Status (5)
Country | Link |
---|---|
US (1) | US4835679A (ko) |
EP (1) | EP0189202B1 (ko) |
JP (1) | JPS61170828A (ko) |
KR (1) | KR900005283B1 (ko) |
DE (1) | DE3689006T2 (ko) |
Families Citing this family (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS62117038A (ja) * | 1985-11-15 | 1987-05-28 | Mitsubishi Electric Corp | マイクロプログラム制御装置 |
US5454088A (en) * | 1985-11-15 | 1995-09-26 | Mitsubishi Denki Kabushiki Kaisha | Microprogram control device for controlling data path section including designation of instruction cycle values |
JPS62164133A (ja) * | 1986-01-16 | 1987-07-20 | Toshiba Corp | マイクロプログラム制御装置 |
US5233695A (en) * | 1987-03-31 | 1993-08-03 | Kabushiki Kaisha Toshiba | Microprocessor with a reduced size microprogram |
US5101483A (en) * | 1988-01-27 | 1992-03-31 | Oki Electric Industry Co., Ltd. | Instruction decoder simplification by reuse of bits to produce the same control states for different instructions |
DE68927783T2 (de) * | 1988-05-03 | 1997-09-25 | Wang Laboratories | Mikroprozessor mit äusserem steuerungsspeicher |
US5335330A (en) * | 1990-05-14 | 1994-08-02 | Matsushita Electric Industrial Co., Ltd. | Information processing apparatus with optimization programming |
US5454090A (en) * | 1990-10-12 | 1995-09-26 | Siemens Aktiengesellschaft | Apparatus for furnishing instructions in a microprocessor with a multi-stage pipeline processing unit for processing instruction phase and having a memory and at least three additional memory units |
US5363490A (en) * | 1992-02-03 | 1994-11-08 | Unisys Corporation | Apparatus for and method of conditionally aborting an instruction within a pipelined architecture |
US5740465A (en) * | 1992-04-08 | 1998-04-14 | Hitachi, Ltd. | Array disk controller for grouping host commands into a single virtual host command |
JPH05334075A (ja) * | 1992-04-13 | 1993-12-17 | Nec Corp | ディジタルプロセッサ |
US5581720A (en) * | 1994-04-15 | 1996-12-03 | David Sarnoff Research Center, Inc. | Apparatus and method for updating information in a microcode instruction |
US5636352A (en) * | 1994-12-16 | 1997-06-03 | International Business Machines Corporation | Method and apparatus for utilizing condensed instructions |
US5649179A (en) * | 1995-05-19 | 1997-07-15 | Motorola, Inc. | Dynamic instruction allocation for a SIMD processor |
US5905881A (en) * | 1995-11-30 | 1999-05-18 | Unisys Corporation | Delayed state writes for an instruction processor |
US5867699A (en) * | 1996-07-25 | 1999-02-02 | Unisys Corporation | Instruction flow control for an instruction processor |
US5796972A (en) * | 1997-01-14 | 1998-08-18 | Unisys Corporation | Method and apparatus for performing microcode paging during instruction execution in an instruction processor |
JP3585800B2 (ja) | 1999-01-13 | 2004-11-04 | 株式会社東芝 | 情報処理装置 |
DE60210438T2 (de) * | 2002-07-10 | 2006-10-12 | Stmicroelectronics S.R.L., Agrate Brianza | Verfahren und Gerät zur Verminderung der Busschaltaktivität und Rechnerprogrammprodukt |
US9372696B2 (en) * | 2013-10-18 | 2016-06-21 | Via Technologies, Inc. | Microprocessor with compressed and uncompressed microcode memories |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6049332B2 (ja) * | 1977-01-31 | 1985-11-01 | 株式会社東芝 | マイクロプログラム制御方式 |
US4348736A (en) * | 1978-10-05 | 1982-09-07 | International Business Machines Corp. | Programmable logic array adder |
US4325121A (en) * | 1978-11-17 | 1982-04-13 | Motorola, Inc. | Two-level control store for microprogrammed data processor |
DE2951040A1 (de) * | 1979-01-16 | 1980-07-24 | Digital Equipment Corp | Steuerspeicher in einem steuerabschnitt eines rechners |
DE2907734A1 (de) * | 1979-02-28 | 1980-09-04 | Siemens Ag | Mikrocomputeranlage in monolithischer integration mit einem festwort-programmspeicher |
US4394736A (en) * | 1980-02-11 | 1983-07-19 | Data General Corporation | Data processing system utilizing a unique two-level microcoding technique for forming microinstructions |
US4370729A (en) * | 1980-03-21 | 1983-01-25 | Point 4 Data Corporation | Microprogram sequencer |
JPS5748139A (en) * | 1980-09-04 | 1982-03-19 | Nec Corp | Microprogram control device |
US4402043A (en) * | 1980-11-24 | 1983-08-30 | Texas Instruments Incorporated | Microprocessor with compressed control ROM |
DE3121562A1 (de) * | 1981-05-30 | 1983-01-05 | Ibm Deutschland Gmbh, 7000 Stuttgart | Programmierbare logische hochintegrierte schaltungsanordnung |
US4422144A (en) * | 1981-06-01 | 1983-12-20 | International Business Machines Corp. | Microinstruction substitution mechanism in a control store |
JPS57203141A (en) | 1981-06-10 | 1982-12-13 | Hitachi Ltd | Method and device for controlling microprogram |
US4509114A (en) * | 1982-02-22 | 1985-04-02 | International Business Machines Corporation | Microword control mechanism utilizing a programmable logic array and a sequence counter |
US4488219A (en) * | 1982-03-18 | 1984-12-11 | International Business Machines Corporation | Extended control word decoding |
US4504904A (en) * | 1982-06-15 | 1985-03-12 | International Business Machines Corporation | Binary logic structure employing programmable logic arrays and useful in microword generation apparatus |
JPS592146A (ja) * | 1982-06-29 | 1984-01-07 | Fujitsu Ltd | マイクロプログラム制御装置 |
US4566075A (en) * | 1982-12-21 | 1986-01-21 | Texas Instruments Incorporated | Table lookup multiplier employing compressed data read only memory |
US4546273A (en) * | 1983-01-11 | 1985-10-08 | Burroughs Corporation | Dynamic re-programmable PLA |
JPS6116332A (ja) * | 1984-07-02 | 1986-01-24 | Mitsubishi Electric Corp | マイクロプログラム制御装置 |
JPS6188336A (ja) * | 1984-10-08 | 1986-05-06 | Fuji Xerox Co Ltd | マイクロプログラム制御装置 |
JPS61134838A (ja) * | 1984-12-04 | 1986-06-21 | Nec Corp | マイクロプログラム制御方式 |
-
1985
- 1985-01-24 JP JP60011520A patent/JPS61170828A/ja active Granted
-
1986
- 1986-01-14 US US06/818,685 patent/US4835679A/en not_active Expired - Lifetime
- 1986-01-22 KR KR1019860000392A patent/KR900005283B1/ko not_active IP Right Cessation
- 1986-01-23 DE DE86100913T patent/DE3689006T2/de not_active Expired - Fee Related
- 1986-01-23 EP EP86100913A patent/EP0189202B1/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
EP0189202A3 (en) | 1989-08-23 |
JPH0346850B2 (ko) | 1991-07-17 |
EP0189202A2 (en) | 1986-07-30 |
EP0189202B1 (en) | 1993-09-15 |
US4835679A (en) | 1989-05-30 |
KR860006060A (ko) | 1986-08-18 |
DE3689006D1 (de) | 1993-10-21 |
JPS61170828A (ja) | 1986-08-01 |
DE3689006T2 (de) | 1994-01-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR900005283B1 (ko) | 마이크로프로그램 제어장치 | |
US4118773A (en) | Microprogram memory bank addressing system | |
EP0087011A2 (en) | Microcode control mechanism utilizing programmable microcode repeat counter | |
US4124893A (en) | Microword address branching bit arrangement | |
US4901235A (en) | Data processing system having unique multilevel microcode architecture | |
JPS62197830A (ja) | デ−タ処理システム | |
US4467415A (en) | High-speed microprogram control apparatus with decreased control storage requirements | |
EP0086992B1 (en) | Microword generation mechanism utilizing separate programmable logic arrays | |
US4251862A (en) | Control store organization in a microprogrammed data processing system | |
EP0377976A2 (en) | Microcode control apparatus utilizing programmable logic array circuits | |
EP0035334B1 (en) | Data processing system with two level microprogramming | |
JPS594329A (ja) | Plaを用いた論理回路 | |
US4509114A (en) | Microword control mechanism utilizing a programmable logic array and a sequence counter | |
US4394735A (en) | Data processor controlled by microprograms | |
JPH02242334A (ja) | マイクロプログラムされるコンピュータ装置及びマイクロコードシーケンスメモリをアドレツシングする方法 | |
US4037212A (en) | Information processing system | |
US4034345A (en) | Microprogrammable computer data transfer architecture | |
US4101967A (en) | Single bit logic microprocessor | |
JPH0640303B2 (ja) | デ−タ処理装置 | |
JPH1091430A (ja) | 命令解読装置 | |
US5410659A (en) | Digital processor with instruction memory of reduced storage size | |
JP2583506B2 (ja) | データ処理装置 | |
US5568622A (en) | Method and apparatus for minimizing the number of control words in a brom control store of a microprogrammed central processor | |
JP2804266B2 (ja) | 入口点マッピング及びスキッピング方法及び装置 | |
JPS6346855B2 (ko) |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
G160 | Decision to publish patent application | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 19990629 Year of fee payment: 10 |
|
LAPS | Lapse due to unpaid annual fee |