KR0169555B1 - 반도체 집적회로 - Google Patents

반도체 집적회로 Download PDF

Info

Publication number
KR0169555B1
KR0169555B1 KR1019950058784A KR19950058784A KR0169555B1 KR 0169555 B1 KR0169555 B1 KR 0169555B1 KR 1019950058784 A KR1019950058784 A KR 1019950058784A KR 19950058784 A KR19950058784 A KR 19950058784A KR 0169555 B1 KR0169555 B1 KR 0169555B1
Authority
KR
South Korea
Prior art keywords
data
command
queue
group
bus
Prior art date
Application number
KR1019950058784A
Other languages
English (en)
Other versions
KR960025044A (ko
Inventor
사꾸가와 마모루
다케시 하시즈메
가즈히로 사카시타
Original Assignee
기다오까 다까시
미쓰비시 뎅끼 가부시끼가이샤
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 기다오까 다까시, 미쓰비시 뎅끼 가부시끼가이샤 filed Critical 기다오까 다까시
Publication of KR960025044A publication Critical patent/KR960025044A/ko
Application granted granted Critical
Publication of KR0169555B1 publication Critical patent/KR0169555B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • G06F9/30043LOAD or STORE instructions; Clear instruction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • G06F9/3814Implementation provisions of instruction buffers, e.g. prefetch buffer; banks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3824Operand accessing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3824Operand accessing
    • G06F9/383Operand prefetching
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1006Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Advance Control (AREA)
  • Microcomputers (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Memory System (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

동시에 n비트의 명령 또는 데이터(n은 정수, n1)를 처리할 수 있는 반도체 집적 회로는 명령 버스 또는 데이터 버스를 통해 외부 메모리로부터 수신된 n비트의 m(m1)배의 명령 또는 데이터를 기억하는 큐를 가진다.
그러므로, 반도체 집적 회로의 처리능력을 향상시키고, 또한 저가의 반도체 집적 회로를 설치하는 것이 가능하다.

Description

반도체 집적회로
제1도는 본 발명의 제1실시 예에 따른 반도체 집적 회로의 구성을 나타난 회로도.
제2도는 제1도의 회로도의 상세도.
제3도는 큐(13)의 그룹을 선택하는 멀티플렉서((MUX)12)의 동작을 나타낸 도.
제4도는 마이크로프로세서(6)의 동작속도에 대하여 1-대기(wait)메모리 엑세스의 동작을 나타낸 타이밍 챠트.
제5도는 마이크로프로세서(6)의 동작속도에 대하여 2-대기 메모리 엑세스의 동작을 나타낸 타이밍 챠트.
제6a-6f도는 하나의 큐를 사용하여 실행된 동작을 나타낸 도.
제7a-7f도 및 8a-8f도는 본 발명의 제1실시 예에 따른 동작을 나타낸 도.
제9도는 본 발명의 제2실시 에에 따른 반도체 집적 회로의 구성을 나타낸 회로도.
제10도는 본 발명의 제3실시 예에 따른 반도체 집적 회로의 구성을 나타낸 회로도.
제11도는 본 발명의 제4실시 예에 따른 반도체 집적 회로의 구성을 나타낸 회로도.
제12도는 본 발명의 제5실시 예에 따른 반도체 집적 회로의 구성을 나타낸 회로도.
제13도는 본 발명의 제6실시 예에 따른 반도체 집적 회로의 구성을 나타낸 회로도.
제14도는 본 발명의 제7실시 예에 따른 반도체 집적 회로의 구성을 나타낸 회로도.
제15도는 본 발명의 제8실시 예에 따른 반도체 집적 회로의 구성을 나타낸 회로도.
제16도는 본 발명의 제9실시 예에 따른 반도체 집적 회로의 구성을 나타낸 회로도.
제17도는 본 발명의 제10실시 예에 따른 반도체 집적 회로의 구성을 나타낸 회로도.
제18도는 본 발명의 제11실시 예에 따른 반도체 집적 회로의 구성을 나타낸 회로도.
제19도는 본 발명의 제12실시 예에 따른 반도체 집적 회로의 구성을 나타낸 회로도.
제20a-20b도는 가변장의 명령 또는 가변장의 데이터를 기억하는 큐(13)의 그룹상태를 나타낸 도.
제21도는 마이크로프로세서(6)와 메모리(7)와의 사이에 캐시 메모리(48)가 설치된 구성을 나타낸 회로도.
제22도는 본 발명의 제13실시 예에 따른 반도체 집적 회로의 구성을 나타낸 회로도.
제23도는 마이크로프로세서(6)와 메모리(7)와의 사이에 캐시 메모리(51)가 설치된 구성을 나타낸 회로도.
제24도는 본 발명의 제14실시 예에 따른 반도체 집적 회로의 구성을 나타낸 회로도.
제25도는 얼라이너(54)의 동작을 나타낸 도.
제26도는 명령 버스와 데이터 버스에 얼라이너(55,56)가 각각 설치된 구성을 나타낸 회로도.
제27도는 제26도의 구성에 부가적으로 캐시 메모리(58,59)가 설치된 구성을 나타낸 회로도.
제28도는 얼라이너(54)와 메모리(53)와의 사이에 캐시 메모리가 설치된 구성을 나타낸 회로도.
제29도는 종래의 반도체 집적 회로의 구성을 나타낸 회로도.
본 발명은 반도체 집적 회로에 관한 것이고, 특히, 반도체 집적 회로의 처리능력을 향상시키는 기술에 관한 것이다.
반도체 장치의 제조기술의 급속한 진보로, 마이크로프로세서의 성능이 크게 향상되었다.
한편, 메모리 집적도는 향상되었지만, 엑세스 성능은 그 만큼은 향상되지 않았다.
이 이유로, 마이크로프로세서와 메모리의 성능 차가 벌어짐으로 비록 고성능의 마이크로프로세서를 탑재하더라도 시스템전체의 성능이 그 만큼 향상되는 것은 어렵게 된다.
마이크로프로세서는 통상 메모리와 데이터의 전송을 수행함으로 메모리 엑세스의 시간소모는 마이크로프로세서의 유효한 내부처리를 저지한다.
그후, 메모리 엑세스 때문인 처리능력 저하를 억제해서 시스템 전체의 성능을 향상시킬 필요가 있다.
제29도는 종래의 반도체 집적 회로를 나타내고, 마이크로프로세서와 메모리 처리능력차를 제거하도록 구성된다.
제29도에 있어서, 참조부호(1, 2, 3)는 메모리, 마이크로프로세서 및 버스제어부를 각각 나타낸다.
버스제어부(3)는 내부에 제어장치(4)와 레지스터(5)를 구비한다.
이 도면은 마이크로프로세서(2)의 내부버스와 외부버스(즉, 어드레스버스, 데이터버스)가 버스폭이 다른 경우에, 데이터 전송의 효율을 향상시키기 위한 구성 예를 나타낸다.
예컨데, 넓은 버스폭은 16비트를 갖고, 좁은 버스폭은 8비트를 가진다고 가정한다.
좁은 폭의 버스로부터 넓은 폭의 버스로 데이터를 전송하는 경우에는 좁은 폭의 버스로부터의 8비트의 데이터를 레지스터(5)에 기억하고, 좁은 폭의 버스로부터의 다른 8비트 데이터는16비트 데이터를 만들기 위해 수신되며, 그후 16비트 데이터는 넓은 폭의 버스에 운송된다.
넓은 폭의 버스로부터 좁은 폭의 버스로 데이터를 전송할 때, 넓은 폭의 버스로부터의 16비트 데이터는 두개의 8비트로 분리되어 레지스터(5)에 기억되고, 그후 각 8비트 데이터는 좁은 폭의 버스에 전송된다.
이와 같이, 종래의 반도체 집적 회로에 있어서, 버스 제어부는 마이크로프로세서로부터 독립하여 동작함으로, 마이크로프로세서의 내부 처리의 상황을 고려해서 레지스터의 제어를 실행시키는 것은 불가능하다.
그것은 반도체 집적 회로의 처리능력을 저하시킨다.
예컨데, 분기명령의 실행, 분기성립에 관해서, 레지스터에 기억된 데이터를 클리어하도록, 또는 로드 지연동안에 데이터로 레지스터를 가득 채우지 않도록 내부처리를 실행하는 것은 불가능한 것이다.
또한, 미리 복수개의 명령을 선취함으로써 마이크로프로세서 내부에서의 다이나믹 스케줄링의 실현이 어렵다는 것이다.
다이나믹 스케줄링은 큐에 기억된 명령의 실행순서를 변경해도 처리능력 향상에는 문제가 되지 않는다.
또한, 종래의 반도체 집적 회로에 있어서, 데이터를 분해하는 기능 등의 제어를 마이크로프로세서 외부에 설치하는 것은 반도체 집적 회로의 부품점수를 증가시키고 제조가격을 증가시킨다.
본 발명은 제1관점에 따라, 반도체 집적 회로는 n비트의 단위로 제1데이터를 처리하는 코어(n은 정수;n1), 외부 메모리로부터 (n×m)비트이하의 비트폭을 가지는 제2데이터를 수신하고 거기에 제2데이터를 기억하는 (n×m) 비트 폭(m1)의 적어도 하나의 큐, 그리고 적어도 하나의 큐로부터 제2데이터를 수신하고 제1데이터로서 코어에 제2데이터중의 n비트를 선택적으로 출력하는 멀티플렉서를 구비한다.
또한, 적어도 하나의 큐는 서로 직렬로 접속된 p큐(p는 정수;p1)를 포함하고, p큐는 큐의 그룹을 구성하고, 반도체 집적 회로는 p큐 중의 하나로부터 다음 하나로 제2데이터를 순차 시프트 함으로서 멀티플렉서에 제2데이터를 전송하는 큐 제어부를 더 구비한다.
또한, 반도체 집적 회로는 외부 메모리로부터 큐의 그룹으로 제2데이터를 전송하는 (n×m)비트 폭의 버스를 더 구비한다.
또한, 반도체 집적 회로는 버스에서의 어떤 중심에서 삽입된 얼라이너를 더 구비한다.
또한, 제2데이터는 가변장의 데이터이고, 반도체 집적 회로는 버스에 큐 중의 최하단의 소정의 메모리 위치에 제2데이터를 출력하는 선택부를 더 구비한다.
또한, 반도체 집적 회로는 버스에서의 어떤 중심점에 삽입된 캐시 메모리를 더 구비한다.
본 발명의 제2관점에 따라, 반도체 집적 회로는 (a) n비트(n은 정수;n1)의 단위로 제1명령 또는 제1데이터를 처리하는 코어, (b) 명령큐의 그룹은 (b-1)외부 메모리로부터 (n×m)비트 이하의 비트 폭을 가지는 제2데이터를 수신하고 거기에 제2데이터를 기억하는 (n×m)비트 폭(m1)의 제1명령큐와, (b-2) (s-1)번째 명령큐로부터 제2명령을 수신하고 거기에 제2명령을 기억하는 (n×m)2비트 폭의 s번째 명령 큐(1 s p;p는 1이상의 정수)를 포함하고, p번째 명령에 제1직렬 접속을 가지는 명령큐의 그룹, (c)데이터큐의 그룹은 (c-1)외부 메모리로부터 (n×m)비트 이하의 비트 폭을 가지는 제2데이터를 수신하고 거기에 제2데이터를 기억하는 (n×m)비트 폭(m1)의 제1데이터큐와, (c-2)(t-1)번째 데이터큐로부터 제2데이터를 수신하고 거기에 제2데이터를 기억하는 (n×m)비트 폭의 t번째 데이터큐(1 t q;q는 1이상의 정수)를 포함하고, q번째 데이터 큐에 제1의 직렬 접속을 가지는 데이터큐의 그룹(d) 명령큐의 그룹과 데이터큐의 그룹 각각에서 제2명령과 제2데이터를 순차 시프트하는 큐제어부, (e) p번째 명령큐로부터 제2명령을 수신하고 제1명령으로서 코어에 제2명령 중의 n비트를 선택적으로 출력하는 제1멀티플렉서, (f) q번째 데이터 큐로부터 제2데이터를 수신하고 제1데이터로서 코어에 제2데이터 중의 n비트를 선택적으로 출력하는 제2멀티플렉서를 구비한다.
또한, 제2명령 및 제2데이터는 가변장의 데이터이고, 반도체 집적 회로는 (g) 제1명령 큐의 소정의 메모리 위치에 제2명령을 출력하는 명령 큐의 그룹과 외부 메모리와의 사이에 배치된 제1선택부, (h) 제1데이터 큐의 소정의 메모리 위치에 제2데이터를 출력하는 데이터 큐의 그룹과 외부 메모리와의 사이에 배치된 제2선택부를 더 구비한다.
또한, 반도체 집적 회로는 (g) 제2명령을 전송하는 제1명령 큐에 외부 메모리를 접속하는 명령 버스, (h) 제2데이터를 전송하는 제1데이터 큐에 외부 메모리를 접속하는 데이터버스를 더 구비한다.
또한, 반도체 집적 회로는 적어도 하나의 명령 버스와 데이터 버스의 어떤 중심점에 삽입된 얼라이너를 더 구비한다.
또한, 외부 메모리는 명령 메모리와 데이타 메모리에 분리되고, 명령 버스와 데이터 버스는 명령 메모리와 데이터 메모리에 각각 접속된다.
본 발명의 제3관점에 따라, 반도체 집적 회로는 (a) n비트(n은 정수;n1)의 단위에 제1명령 또는 제1데이터를 처리하는 코어, (b) 명령큐의 그룹은 (b-1) 외부 메모리로부터 제2명령 중의 n비트를 수신하고 거기에 제2명령 중의 n비트 기억하는 n 비트 폭의 제1명령 큐와, (b-2) (s-1)번째 명령 큐로부터 제2명령 중의 n비트를 수신하고 거기에 제2명령 중의 n비트를 기억하는 n비트폭의 s번째 명령 큐(1sp; p1는 1이상의 정수)를 포함하고, p번째 명령 큐에 제1의 직렬 접속을 가지는 명령 큐의 그룹, (c)데이터 큐의 그룹은 (c-1) 외부 메모리로부터 제2데이터 중의 n비트를 수신하고 거기에 제2데이터 중의 n비트를 기억하는 n비트 폭의 제1데이터 큐와, (c-2) (t-1)번째 데이터 큐로부터 제2데이터 중의 n비트를 수신하고 거기에 제2데이터 중의 n비트를 기억하는 n비트 폭의 t번째 데이터 큐(1tq ;q는 1이상의 정수)를 포함하고, q번째 데이터 큐에 제1의 직렬 접속을 가지는 데이터 큐의 그룹, (d) 제2명령과 제2데이터를 각각 수신하고 거기에 그들을 기억하는 {n×(m-1)}비트 폭의 공통의 큐의 그룹, (e)명령 큐의 그룹과 데이터 큐의 그룹, 그리고 공통의 큐의 그룹 각각에서 제2명령과 제2데이터를 순차 시프트하는 큐 제어부, (f)제2명령과 제2데이터를 전송하는 제1명령 큐와 제1데이터 큐에 외부 메모리를 접속하는 n비트 폭의 제1버스, (g) 제2명령과 제2데이터를 전송하는 공통의 큐의 그룹에 외부 메모리를 접속하는 {n×(m-1)}비트 폭의 제2버스, (h)명령 큐의 그룹과 공통의 큐의 그룹으로부터 제2명령을 수신하고, 제1명령으로서 코어에 제2명령 중의 n비트를 선택적으로 출력하는 제1멀티플렉서, (i) 데이터 큐의 그룹과 공통의 큐의 그룹으로부터 제2데이터를 수신하고, 제1데이터로서 코어에 제2데이터 중의 n비트를 선택적으로 출력하는 제2멀티플렉서를 구비한다.
또한, 반도체 집적 회로는 (j)제2버스에 어떤 중심점에 삽입된 캐쉬 메모리를 더 구비한다.
본 발명의 제4실시 예에 따라, 반도체 집적 회로는 (a)n비트(n은 정수;n1)의 단위로 제1명령 또는 제1데이터를 처리하는 코어, (b) 명령 큐의 그룹은 (b-1) 외부 메모리로부터 (n×m)비트 이하의 비트 폭을 가진 제2명령을 수신하고 거기에 제2명령을 기억하는 (n×m)비트 폭(m1)의 제1명령 큐와, (b-1) p번째 명령 큐에 제1의 직렬 접속을 가진 (s-1)번째 명령으로부터 제2명령을 수신하고 거기에 제2명령을 기억하는 (n×m)비트 폭의 s번째 명령 큐(1sp; p는 1이상의 정수)를 포함하고, p번째 명령 큐에 제1의 직렬 접속을 가지는 명령큐의 그룹, (c)데이터 큐의 그룹은 (c-1)외부 메모리로부터 n비트 폭의 제2데이터를 수신하고 거기에 제2데이터를 기억하는 n비트 폭의 제1데이터 큐와, (c-2) (t-1)번째 데이터 큐로부터 제2데이터를 수신하고 거기에 제2데이터를 기억하는 n비트 폭의 t번째 데이터 큐(1tq; q는 1이상의 정수)를 포함하고, q번째 데이터 큐에 제1의 직렬 접속을 가지는 데이터 큐의 그룹, (d) 명령 큐의 그룹과 데이터 큐의 그룹에서 제2명령과 제2데이터를 순차 시프트하는 큐제어부, (e) p번째 명령 큐로부터 제2명령을 수신하고 제1명령으로서 코어에 제2명령 중의 n비트를 선택적으로 출력하는 멀티플렉서를 구비하고, 그리고 제1데이터는 q번째의 데이터 큐로부터 획득된다.
또한, 반도체 집적 회로는 (f)제2명령을 전송하는 제1명령 큐에 외부 메모리를 접속하는 명령 버스, (g)제2데이터를 전송하는 제1데이터 큐에 외부 메모리를 접속하는 데이터 버스를 구비한다.
또한, 반도체 집적 회로는 적어도 하나의 명령 버스 및 데이터 버스에서 어떤 중심점에 삽입된 얼라이너를 더 구비한다.
또한, 외부 메모리는 명령메모리와 데이터 메모리로 분리되고, 명령 버스와 데이터 버스는 명령 메모리와 데이터 메모리에 각각 접속된다.
본 발명의 제5관점에 따라, 반도체 집적 회로는 (a) n비트(n은 정수;n1)의 단위로 제1명령 또는 제1데이터를 처리하는 코어, (b) 명령 큐의 그룹은 (b-1)외부 메모리로부터 n비트 폭의 제2명령을 수신하고 거기에 제2명령을 기억하는 n비트 폭의 제1명령 큐와, (b-2) p번째 명령 큐에 제1의 직렬 접속을 가진 (s-1)번째 명령으로부터 제2명령을 수신하고 거기에 제2명령을 기억하는 n비트 폭의 s번째 명령 큐(1sp; p는 1이상의 정수)를 포함하고, p번째 명령 큐에 제1의 직렬 접속을 가지는 명령 큐의 그룹, (c)데이터 큐의 그룹은 (c-1)외부 메모리로부터 (n×m)비트 이하의 비트 폭을 가진 제2데이터를 수신하고 거기에 제2데이터를 기억하는 (n×m)비트 폭(m1)의 제1데이터 큐와, (c-2) (t-1)번째 데이터 큐로부터 제2데이터를 수신하고 거기에 제2데이터를 기억하는 (n×m)비트 폭의 t번째 데이터 큐(1tq; q는 1이상의 정수)를 포함하고, q번째 데이터 큐에 제1의 직렬 접속을 가지는 데이터 큐의 그룹, (d)명령 큐의 그룹과 데이터 큐의 그룹에서 제2명령 및 제 2데이터를 순차 시프트하는 큐 제어부, (e)p번째 데이터 큐로부터 제2데이터를 수신하고 제1데이터로서 코어에 제2데이터 중의 n비트를 선택적으로 출력하는 멀티플렉서를 구비하고, 그리고 제1명령은 p번째의 명령 큐로부터 획득된다.
또한, 반도체 집적 회로는 (f)제2명령을 전송하는 제1명령 큐에 외부 메모리를 접속하는 명령 버스, (g)제3데이터를 전송하는 제1데이터 큐에 외부메모리를 접속하는 데이터 버스를 더 구비한다.
또한, 반도체 집적 회로는 적어도 하나의 명령 버스와 데이터 버스에서 어떤 중심점에 삽입된 얼라이너를 더 구비한다.
또한, 외부 메모리는 명령 메모리와 데이터 메모리로 분리되고, 명령 버스와 데이터 버스는 명령 메모리와 데이터 메모리에 각각 접속된다.
본 발명의 제6관점에 따라, 반도체 집적 회로는 (a) n비트(n정수;n1)의 단위로 제1명령 또는 제1데이터를 처리하는 코어, (b) 명령 큐의 그룹은 (b-1)외부 메모리로부터 (n×m)비트 이하의 비트 폭을 가지는 제2명령을 수신하고 거기에 제2명령을 기억하는 (n×m)비트 폭(m1)의 제1명령 큐와, (b-2) (s-1)번째 명령으로부터 제2명령을 수신하고 거기에 제2명령을 기억하는 (n×m)비트 폭의 s번째 명령 큐(1sp; p는 1이상의 정수)를 포함하고, p번째 명령 큐에 제1의 직렬 접속을 가지는 명령 큐의 그룹 (c)데이터 큐의 그룹은 (c-1)외부 메모리로부터 (n×k)비트 이하의 비트 폭을 가지는 제2데이터를 수신하고 거기에 제2데이터를 기억하는 (n×k)비트 폭(km)의 제1데이터 큐와, (c-2)(t-1)번째 데이터 큐로부터 제2데이터를 수신하고 거기에 제2 데이터를 기억하는 (n×k)비트폭의 t번째 데이타 큐(1tq; q는 1이상의 정수)를 포함하고, q번째 데이터 큐에 제1의 직렬 접속을 가지는 데이터 큐의 그룹, (d) 명령 큐의 그룹과 데이터 큐의 그룹에서 제2명령과 제2데이터를 순차 시프트하는 큐 제어부, (e) p번째 데이터 큐로부터 제2명령을 수신하고 제1명령으로서 코어에 제2데이터 중의 n비트를 선택적으로 출력하는 제1멀티플렉서, (f)q번째 데이터 큐로부터 제2데이터를 수신하고 제1데이터로서 코어에 제2데이터중의 n비트를 선택적으로 출력하는 제2멀티플렉서를 구비한다.
또한, 반도체 집적 회로는 (g) 제2명령을 전송하는 제1명령 큐에 외부 메모리를 접속하는 명령 버스, (h) 제2데이터를 전송하는 제1데이터 큐에 외부메모리를 접속하는 데이터 버스를 더 구비한다.
또한, 반도체 집적 회로는 적어도 하나의 명령 버스와 데이터 버스에서 어떤 중심점에 삽입된 얼라이너를 더 구비한다.
또한, 외부 메모리는 명령 메모리와 데이터 메모리를 분리되고, 명령 버스와 데이터 버스는 명령 메모리와 데이터 메모리에 각각 접속된다.
본 발명에 따른 반도체 집적 회로는 반도체 집적 회로가 동시에 n비트를 처리할 때, n비트의 m배의 명령과 데이터를 기억하도록 큐의 그룹을 갖고, 따라서 반도체 집적 회로내의 처리상황에 답해서 내부 동작을 실행시킬 수 있다.
그러므로, 본 발명에 따른 반도체 집적 회로는 예컨데, 분기 명령이 실행되고 다이나믹 스케줄링을 실행할 수 있을 때, 유효한 내부처리를 얻어 그 처리능력을 향상시킨다.
또한, 반도체 집적 회로내의 큐의 그룹의 설치는 부품점수를 감소시킨다.
나아가, 그것은 제조가격을 감소시킨다.
이와 같이, 저가의 반도체 집적 회로를 설치하는것이 가능하게 된다.
본 발명의 목적은 반도체 집적 회로의 처리능력을 향상시키고, 저가의 반도체 집적 회로를 설치하는 것이다.
본 발명의 다른 목적과 효과는 첨부도면과 함께 이하의 상세한 설명으로부터 더 명확하게 된다.
[제1실시 예]
제1도는 본 발명의 제1실시 예에 따른 반도체 집적 회로의 구성을 나타낸다.
마이크로프로세서(6)와 메모리(7)는 n비트 폭의 어드레스버스와 (n×m)비트 폭의 데이터 버스를 통해 서로 접속된다.
마이크로프로세서(6)는 코어(8)를 구비한다.
코어(8)은 연산부(9)와 레지스터(10)를 포함하고, n비트의 연산을 실행한다.
제1실시 예에 있어서, 마이크로프로세서(6)는 n비트의 단위로 명령 또는 데이터를 처리한다고 가정한다.
코어(8)는 도면에 나타나지 않은 CPU(중앙처리장치)를 더 포함한다.
예컨데, CPU는 어드레스 버스를 통해 메모리(7)에 어드레스를 주도록 버스제어부(11)를 제어한다.
멀티플렉서(12)(이하, MUX로 함)는 연산부(9)에 선택된 데이터를 출력하도록 후에 설명된 바와 같이, 큐로 부터 데이터를 선택한다.
큐(13)의 그룹은 (n×m)비트 폭(m1)을 가지는 각 큐로 이루어져 있고, 각 큐(131)는 마이크로프로세서(6)가 n비트의 명령 또는 데이터를 동시에 처리가능할 때, n비트의 m배분의 명령 또는 데이터를 기억한다.
큐 제어부(14)는 큐(13)의 그룹을 제어한다.
제2도는 더 상세히 제1도의 회로도를 부분적으로 나타낸다.
각 큐(131)는 선에 정렬된 (n×m)의 D플립플롭으로 이루어져 있고, 클럭신호(CLK)에 동기해서 (n×m)비트 명령 또는 데이터를 수신한다.
수신된 명령 또는 데이터는 큐(131)부터 큐(13p)까지 순차 시프트된다.
큐제어부(14)는 클럭신호(CLK)에 따른 각 D플립플롭의 클럭단에 신호를 적용함으로서 큐(13)의 그룹에 입력된 명령 또는 데이터의 연산(큐 그룹의 하단으로부터 상단으로의 시프트 동작과 같음)을 제어하고, CPU에 의해 주어진 큐 클리어 신호(15)에 따른 모든 큐(131-13p)를 제거한다.
큐제어부(14)는 CPU에 큐(131)의 내부상태를 나타내는 큐 상태신호(16)를 출력한다.
0의 큐 상태신호(16)는 큐(131-13p)에 자유영역이 있다는 것을 나타내고, 0의 큐 상태신호(16)를 수신하고 CPU는 메모리(7)에 판독-요구를 준다.
1의 큐 상태신호(16)는 큐(131-13p)가 충만히 있다는 것을 나타내고, 1의 큐 상태신호(16)를 수신하는 CPU는 메모리(7)로부터 명령이 없다는 것을 판독한다.
큐 제어부(14)는 첫 번째-p번째의 큐(13i-13p)에 각각 대응하는 직렬로 접속된 첫 번째-p번째의 D플립플롭으로 이루어져 있다.
첫 번째-p번째의 D플립플롭은 큐(131-13p)가 데이터를 시프트 함으로서 동시에 데이터가 메모리(7)로부터 출력되었다는 것을 나타내는 준비신호를 시프트하여, 큐(13p)에 기억된 데이터의 유효를 나타내는 유효신호(17)를 출력한다.
유효신호(17)는 큐(13p)에서의 데이터가 유효정보를 가질 때만, 1이 된다.
유효신호(17)가 1일 때, 큐(13p)에서의 데이터는 선택신호에 따른 MUX(12)에 의해 적당한 크기의 데이터블록으로 분리되고, 바꾸어 말하면 채택된 데이터(명령)를 기억하는 D플립플롭은 이때 선택된다.
그후, 분리된 데이터는 CPU에 출력된다.
제3도는 큐(13p)의 내용을 선택하는 MUX(12)의 동작을 나타낸다.
설명의 편의상, 여기서 큐(131)가 명령을 기억한다고 가정한다.
예컨데, 4개의 8비트 명령(A-D)은 큐(13p)에 기억된다.
보통, 명령(A)은 CPU로부터 선택신호에 따라 선택되어야 한다.
그러나, 한 경우에 있어서, 동작부(9)에는 동작부(9)에서 실행된 점프명령 때문에 명령(c)을 요구하고, MUX(12)에는 명령(c)을 선택하여 코어(8)에서의 동작부(9)에 명령(c)을 출력한다.
제1실시예에 있어서, 메모리(7)에 엑세스하는 데이터버스는 n비트(n×m비트)의 m배의 명령을 판독하도록 n비트의 m(m1)배의 폭을 갖지만, 마이크로프로세서(6)는 n비트 폭의 명령을 처리할 수 있다.
메모리(7)로부터의 (n×m)비트의 명령은 마이크로프로세서(6)내에 설치된 큐(13)의 그룹에 기억된다.
클럭신호(CLK)의 한 개의 사이클 또는 몇 개의 싸이클마다 마이크로프로세서(6)에 의해 주어진 요구에 따라, 메모리(7)로부터 명령이 독출됨으로, 유효한 내부처리가 실행될 수 있다.
메모리(7)로부터, m n비트의 명령이 하나의 어드레스신호마다 출력된다.
큐(13)의 그룹에 기억된 명령은 큐(131)부터 큐(13p)까지 시프트하여 MUX에 의해 마이크로프로세서(6)가 처리할 수 있는 것과 같은 것의 크기를 가지는 각 명령으로 분리되고, 그후 분리된 명령은 코어(8)에서의 동작부(9)에 출력된다.
마이크로프로세서(6)가 동시에 처리할 수 있는 버스 폭은 MUX(12)에 의해 실행된 분리명령의 단위로서 사용된다.
마이크로프로세서(6)가 처리할 수 있는 n비트의 버스폭은 예컨데, 마이크로프로세서(6)가 8비트의 ALU를 가질 때 8비트이고, 또는 마이크로프로세서(6)가 2개의 8비트 ALU를 가질 때는 16비트이다.
각 큐(131)에 기억되기 위한 명령은 8비트의 m배 또는 16비트의 m배의 버스 폭으로 메모리(7)로부터 출력된다(즉, m은 2이상).
제4도는 데이터가 종래의 메모리부터 마이크로프로세서(2)까지 출력되는 동작을 나타내는 타이밍 챠트이다.
이들 도면은 마이크로프로세서(2)의 동작을 위한 기준클럭(C), 2n비트 폭의 어드레스버스를 통해 마이크로프로세서(2)부터 메모리까지 출력된 어드레스신호(A), 레지스터(5)에서의 명령 레지스터(R1, R2)쌍의 각 내용과 마이크로프로세서(2)에 입력된 명령(M)을 각각 나타낸다.
제4도는 1-대기 메모리 엑세스 동작, 즉, 마이크로프로세서(2)에 의해 처리 실행된 것보다 갑절 느린 메모리엑세스를 나타낸다.
제5도는 2-대기 메모리 엑세스를 나타낸다.
이들 도면에 있어서, 어드레스 신호(A)의 1, 2, ...은 어드레스신호(A)의 수를 나타내고, 레지스터(R1, R2)의 1, 2 ...에 대응하는 명령을 나타내고, 명령(M)의 1, 2, ...는 레지스터(R1, R2)로부터 판독한 명령의 수를 나타낸다.
제4도에서 볼 수 있었던 것처럼, 1-대기 메모리 엑세스에 있어서, 레지스터(R1, R2)로부터 며영을 판독하는 대기가 없는 상태가 마이크로프로세서(2)에서 일어난다.
한편, 제5도에 나타난 바와 같이 2-대기 메모리 엑세스에 있어서, 새틴부에 의해 나타난 바와 같이, 마이크로프로세서(2)에서 대기가 일어난다.
대기상태에 있어서, 마이크로프로세서(2)가 레지스터로부터 명령을 판독할 수 없을 시에, 그것의 처리를 보유한다.
그러한 대기의 발생에 있어서, 어떤 고성능의 마이크로프로세서(2)는 메모리부터 레지스터까지 명령을 판독하기 위한 시간을 필요로 함으로, 그것의 성능이 저하한다.
마이크로프로세서(2와 메모리(1)와의 사이의 성능 차, 즉, 대기의 발생수가 증가함으로, 마이크로프로세서(2)에서 더 긴 대기가 발생한다.
그것은 버스제어부(3)에서의 레지스터와 마이크로프로세서(2)를 처리할 수 있는 버스 폭에 같은 크기의 메모리를 가진 레지스터의 제한된 수에 의해 야기된다.
제1실시 예에 있어서, (n×m)비트 버스 폭의 명령은 처리 가능한 마이크로프로세서(6)가 큐의 그룹에 의해 수신되는 버스 폭보다 더 크기 때문에, 코어(8)에서의 레지스터(10)에 메모리(7)로부터의 명령을 판독하는 주기를 대기하기 위한 마이크로프로세서(6)가 필요 없다.
또한, 큐(13)에 기억된 이들 중의 필요한 명령만이 MUX(12)를 통해 코어(8)에서의 연산부(9)에 출력됨으로, 주파수 대기가 제5도에 나타난 마이크로프로세서에서 보다 적게 발생한다.
제1실시 예에 있어서, n비트의 m배의 명령은 미리 마이크로프로세서(6)에서 판독됨으로, 제4도에 나타난 바와 같이, 하나의 대기도 없는 명령이 연산부(9)에 급속히 출력된다.
제1실시 예에 있어서, 큐의 그룹은 복수개의 큐(131)를 포함하여야 한다. 6A-6F도는 (n×m)비트 폭의 큐(13p)만 p=1의 경우에 대응하여, 큐(13)의 그룹을 대신해 설치된다.
이들 도면에 있어서, m=2의 경우를 나타낸다.
n비트를 가지는 각 명령(1, 2, 3, 4)은 큐(13p)에 주어지고, 또한 그 곳으로부터 코어(8)에 전송된다.
클럭신호의 두개의 싸이클은 명령(1)을 처리하기 위해 요구되고, 클럭신호의 한 개의 싸이클은 어떤 명령(2, 3, 4)을 처리하기 위해 요구된다.
2-대기의 메모리 엑세스가 실행된다.
제6a도의 스텝에 있어서, 두 개의 명령(1, 2)은 큐(13o)에 기억되었고, 명령(1)의 처리는 다음 한 개의 싸이클에 따라 코어(8)에서 개시한다(제6b도).
코어(1)에서의 명령(1)의 처리는 완전하게 되도록 다른 하나의 싸이클을 요구한다(제6c도).
다음 하나의 싸이클에 따라, 명령(2)의 처리가 하나의 사이클만을 요구하는 코어(8)에서 순차 실행된다(6d도).
한편, 2-대기의 메모리 엑세스가 실행됨으로, 하나의 명령도 기억되지 않는다.
따라서, 하나의 싸이클에 대한 대기 상태에서의 코어(8)이다(제6e도).
그후, 명령(3, 4)은 큐(13o)에 기억된다(6f도).
제7a-7f도는 2개의 큐(131, 132)를 포함하는 큐(13)의 그룹의 동작을 나타낸다.
제6A-6F도에 나타난 동작과 같이, 클러신호의 두 개의 싸이클은 명령(1)의 처리를 위해 요구되고, 클럭신호의 한 개의 싸이클은 어떤 명령(2, 3, 4)의 처리를 위해 요구된다.
2-대기의 메모리 엑세스가 실행된다.
제7a도의 스텝에 있어서, 2개의 명령(1, 2)은 큐(132)에 기억되었고, 2-대기의 메모리 엑세스가 실행됨으로 큐(131)에 기억되었던 명령은 하나도 없다.
명령(1)의 처리는 제7b도의 스텝에 있어서, 다음 한 개의 싸이클에 따라 코어(8)에서 시작한다.
또한, 제7b도의 스텝에 있어서, 큐(131)에 있었던 명령은 하나도 없다.
명령(1)의 처리는 완성되어지도록 다른 한 개의 싸이클을 요구하고, 이 스텝에 있어서, 명령(3, 4)은 큐(131)에 기억된다(제7c도).
다음 한 개의 싸이클에 따라, 명령(2)의 처리는 코어(8)에서 실행되고, 명령(3, 4)은 큐(131)에서 큐(132)로 시프트된다(제7d도).
명령(2)의 처리는 완성되어지도록 한 개의 싸이클을 요구함으로, 명령(3)의 처리는 코어(8)에서 순차 실행된다.
이 스텝에 있어서, 2-대기의 메모리 엑세스 때문에, 큐(131)에 기억되는 명령은 하나도 없다(제7e도).
다른 한 개의 싸이클에 따라, 명령(4)의 처리는 코어(8)에서 실행되고, 다음명령(5, 6)은 큐(131)에 동시에 기억된다.(제7f도).
이와 같이, 복수의 큐(131, 132)의 설치는 대기상태로 들어가는 코어(8)를 방지하고, 그에 의해 급속한 처리가 확보된다.
제8a-8f도는 큐(13)의 그룹이 복수의 큐(131, 132)를 포함하고, 한 개의 사이클이 코어(8)에서 각 명령(1, 2, 3, 4)의 처리를 위해 요구되는 동작을 나타낸다.
이 경우에 있어서, 6개의 싸이클은 모든 명령(1, 2, 3, 4)의 처리에 필요하다.
바꾸어 말하면, 복수의 큐(131,132)를 설치하기 위해, 명령(1)의 처리는 같은 주기에서 완성될 수 있고, 그것을 위해 2개의 싸이클 또는 한 개의 싸이클이 요구된다.
상기 설명된 바와 같이, 제1실시 예에 있어서, 마이크로프로세서(6)에 처리되어야 하는 명령(또는 데이터)보다 많이 있는 명령(또는 데이터)의 양은 큐(131)에 동시에 기억될 수 있으므로, m요소에 의해 사실상의 메모리 엑세스를 위해 필요한 시간이 줄어들 수 있다.
이와 같이, 메모리 엑세스의 수가 감소될 수 있기 때문에, 고성능을 이루고, 마이크로프로세서(6)의 내부처리가 더 적고, 마이크로프로세서(6)의 처리와 메모리 엑세스와의 속도 차가 더 적게 된다.
특히, 복수의 큐(131)의 설치는 마이크로프로세서(6)와 메모리(7)사이의 연산 속도 차를 줄이기 위해 큰 기여를 한다.
큐(13)의 그룹이 데이터를 항상 기억하기 위하여 만약 마이크로프로세서(6)가 메모리(7)와 큐(13)의 그룹으로부터 데이터를 판독한다면, 마이크로프로세서(6)는 로드지연에 의한 그 성능 저하를 방지할 수 있다.
분기 명령의 실행 경우에, 분기 대상 명령은 큐(13)그룹중의 특정한 큐(131)로부터 판독될 수 있으므로, 마이크로프로세서(6)는 종래의 마이크로프로세서보다 더 빨리 분리대상 명령을 엑세스할 수 있다.
또한, 다이나믹 스케줄링을 실행하는 것은 더 용이하다.
게다가, 마이크로프로세서(6)내에 큐(13)그룹의 설치는 부품점수를 감소시키고, 더 낮은 제조가격을 확보한다.
[제2실시 예]
제9도는 제2실시 예에 따른 반도체 집적 회로의 구성을 나타낸다.
참조부호(6-11)는 제1도와 같은 동일의 구성원소를 나타낸다.
제1도의 데이터버스는 명령버스와 데이터버스로 분리되고, 그것은 큐(25, 28)의 그룹에 각각 접속된다.
명령 큐(25)의 그룹과 데이터 큐(28)의 그룹은 MUX(24, 27)를 통해 코어(8)의 다른 측에 각각 접속된다.
MUX(24)는 명령 큐(25)의 그룹을 통해 전송된 명령을 선택하고, 코어(8)에 n비트의 데이터를 출력한다.
MUX(27)는 데이터 큐(28)의 그룹을 통해 전송된 데이터를 선택하고, 코어(8)에 n비트의 데이터를 출력한다.
각 명령 큐(25)의 그룹과 데이터 큐(28)의 그룹 내부는 제2도의 큐(13)의 그룹과 같이, 복수의 D플립플롭으로 이루어져 있다.
명령 큐(25)의 그룹의 최 하단 큐(메모리(7)에 가장 근접한 큐)큐는 명령버스에 접속되고, 데이터 큐(28)의 그룹의 최 하단 큐(메모리(7)에 가장 근접한 큐)는 데이터 버스에 접속된다.
명령 큐 제어부(26)는 제어신호(큐 클리어 신호(15), 큐 상태 신호(16) 및 유효시호(17)등)에 따라, 명령 큐(25)의 그룹을 제어하고, 데이터 큐 제어부(19)는 같은 방법으로 데이터 큐(28)의 그룹을 제어한다.
비록, 메모리(7)가 단 하나의 구성을 갖더라도, (n×m)비트 명령 또는 데이터를 공통의 버스에 출려가고, 분기는 명령 버스와 데이터 버스에 나온다.
마이크로프로세서(6)는 메모리(7)에 n비트의 어드레스 신호를 출력하고, (n×m)비트의 명령 및 데이터를 명령 버스 또는 데이터 버스를 통해, 명령 큐(25)의 그룹 또는 데이터큐(28)의 그룹에 수신한다.
코어(8)가 버스 제어부(11)에 판독-요구 신호를 줄 때, 명령 또는 데이터는 메모리(7)로부터 판독된다.
코어(8)가 명령 큐 제어부(6) 또는 데이터 큐 제어부(29)에 제어신호를 줄 때, 그리고 MUX(24, 또는 27)에 선택신호(18 또는 19)를 줄 때, 명령 또는 데이터는 코어(8)에서 판독되기 시작한다.
MUX(24 또는 27)을 통해 명령 큐(25)의 그룹이 최 상단 큐(MUX(24)에 가장 근접한 큐) 또는 데이터 큐(28)의 그룹의 최 상단 큐(MUX(27에 가장 근접한 큐)로부터 적당한 크기로 필요한 명령 또는 데이터가 코어(8)에서 판독된다.
메모리(7)로부터 출력을 지정하는 목적은 명령인지 데이터인지 메모리(7)에서의 기억공간이 명령을 위한 기억공간과 데이터를 위한 기억공간으로 명확히 분리된다.
이 경우에 있어서, 명령이 판독되어야 하는지 데이터가 판독되어야 하는지를 결정하기 위해 마이크로프로세서(6)로부터의 어드레스신호를 서브한다.
양자택일로, 마이크로프로세서(6)로붜의 제어신호는 유용하다.
상기 설명된 바와 같이, 제2실시 예에 있어서, 마이크로프로세서(6) 내부에는 명령 큐와 데이터 큐로 분리되는 구성을 갖고, 명령 엑세스와 데이터 엑세스가 서로 독립하여 만들어지는 것을 허락한다.
[제3실시 예]
제10도는 제3실시 예에 따른 반도체 집적 회로의 구성을 나타낸다.
참조부호(6-11, 24-29)는 제9도와 같은 동일의 구성 성분을 나타낸다.
메모리(7)는 명령 메모리(30)와 데이터 메모리(31)로 분리된다.
명령 메모리(30)는 (n×m)비트 폭의 명령버스를 통해 명령 큐(25)의 그룹에 접속되고, 데이터 메모리(31)는 (n×m)비트 폭의 데이터버스를 통해 데이터 큐(28)의 그룹에 접속된다.
보통, 명령 메모리(30)와 데이터 메모리(31)는 n비트 폭의 어드레스버스를 통해 버스 제어부(11)에 접속된다.
명령 메모리(30)와 데이터 메모리(31)는 서로 독립하여 연산한다.
마이크로프로세서(6)는 버스 제어부로부터 명령 메모리(30) 또는 데이터 메모리(31)로 n비트의 어드레스 신호를 출력한다.
(n×m)비트의 명령은 명령 메모리(30)로부터 명령 버스를 통해 명령 큐(25)의 그룹에서 판독되고, (n×m)비트의 데이터는 데이터 메모리(31)로부터 데이터 버스를 통해 데이터 큐(28)의 그룹에서 판독된다.
명령 또는 데이터는 코어(8)가 버스제어부(11)에 판독-요구신호를 줄 때, 명령 메모리(30) 또는 데이터 메모리(31)로부터 판독된다.
코어(8)가 명령 큐 제어부(26) 또는 데이터 큐 제어부(29)에 제어신호를 줄 때, 그리고 MUX(24 또는 27)에 선택신호를 줄 때, 명령 또는 데이터가 코어에서 판독되기 시작한다.
필요한 명령 또는 데이터는 MUX(24 또는 27)를 통해 명령 큐(25)의 그룹의 최 상단 큐(MUX(24)에 가장 근접한 큐) 또는 데이터 큐(28)의 그룹의 최 상단 큐(MUX(27)에 가장 근접한 큐)로부터 적당한 크기로 코어(8)에서 판독된다.
상기 설명된 바와 같이, 제3실시 예에 있어서, 마이크로프로세서(6) 내부에는 명령 큐와 데이터 큐가 분리되어 있는 구성을 갖고, 명령 엑세스와 데이터 엑세스가 서로 독립하여 만들어지는 것을 허락한다.
그러므로, 명령 엑세스와 데이터 엑세스가 서로 경쟁하는 것을 방지하는 것이 가능하게 된다.
명령 메모리(30)와 데이터 메모리(31)는 개별적으로 설치됨으로, 만약, 프로그램의 크기가 적으면, 명령 메모리(30)는 마이크로프로세서(6)내에 설치되어도 된다.
또한, 적은 용량의 메모리는 엑세스속도의 효율적 향상을 일으킨다.
[제4실시 예]
제11도는 제4실시 예에 따른 반도체 집적 회로의 구성을 나타낸다.
참조부호(6-11, 24, 26, 29)는 제9도와 동일의 구성 성분을 나타낸다.
명령 큐(32)의 그룹은 직렬로 접속된 복수의 큐로 이루어져 있고, 각 큐는 마이크로프로세서(6)가 n비트의 명령을 동시에 처리할 수 있을 때, n 비트(n×m 비트)의 m배의 명령을 기억한다.
데이터 큐(33)의 그룹은 직렬로 접속된 복수의 큐로 이루어져 있고, 각 큐는 마이크로프로세서(6)가 동시에 처리할 수 있는 n비트의 데이터를 기억한다.
제4실시 예에 있어서, (n×m)비트 폭을 가진 명령 큐(32)의 그룹에 접속된 명령버스는 마이크로프로세서(6)의 내부 버스 폭보다 크다.
한편, n비트 폭의 데이터버스는 데이터 큐(33)의 그룹에 접속되는 (n×m)비트 폭의 데이터버스 중의 마이크로프로세서(6)의 내부버스 폭만큼 크다.
데이터 큐(33)의 그룹은 n비트 폭의 데이터를 기억하기 위한 구조를 가진다.
명확하게, 데이터 큐(33)의 그룹의 각 큐는 D플립플롭으로 이루어져 있다.
데이터 큐(33)의 그룹을 통해 전송된 n비트 데이터는 MUX를 통하지 않고 코어(8)에 직접 출력된다.
비록, 메모리와 명령버스 및 데이터버스가 접속하기 위해 공통의 버스가 사용되더라도, n비트 이외의 데이터버스의 필요한 비트는 마이크로프로세서(6)에 의해 수신되지 않는다.
데이터버스의 불필요한 비트는 개방되어도 되고, 또는 멀티플렉서에 의해 선택되어도 된다.
메모리(7)로부터 마이크로프로세서(6)로 명령 또는 데이터를 판독하는 동작과 코어(8)에서 명령 또는 데이터를 판독하는 마이크로프로세서의 동작은 제2실시 예와 동일하고, 그의 논의는 생략한다.
이상과 같이 구성하는 것으로, 데이터 큐(33)의 그룹을 소형화 할 수 있으므로, 반도체 집적 회로의 회로규모를 삭감하는 효과가 있다.
[제5실시 예]
제12도는 제5실시 예에 따른 반도체 집적 회로의 구성을 나타낸다.
참조부호(6-11, 24, 26, 29-31)는 제10도와 동일의 구성성분을 나타낸다.
명령 큐(34)의 그룹의 각 큐는 마이크로프로세서(6)가 n비트의 명령을 동시에 처리할 수 있을 때, n비트(n×m비트)의 m배의 명령을 기억한다.
데이터 큐(35)의 그룹의 각 큐는 마이크로프로세서(6)가 동시에 처리할 수 있는 n비트의 데이터를 기억한다.
제5실시 예에 있어서, 메모리는 명령메모리(30)와 데이터 메모리(31)로 분리된다.
명령 큐(34)의 그룹에 접속된 명령버스는 마이크로프로세서(6)의 내부 버스 폭보다 더 큰 (n×m)비트 폭을 갖고, 데이터 큐(35)의 그룹에 접속된 데이터버스는 마이크로프로세서(6)의 내부버스 폭만큼 큰 n비트 폭을 갖는다.
데이터 큐(35)의 그룹은 n비트 폭의 데이터를 기억하기 위한 구조를 갖는다.
명확하게, 데이터 큐(35)의 그룹의 각 큐는 D플립플롭으로 이루어져 있다.
데이터 큐(35)의 그룹을 통해 전송된 n비트 데이터는 MUX를 통하지 않고 코어(8)에 직접 출력된다.
메모리(7)로부터 마이크로프로세서(6)로의 명령 또는 데이터를 판독하는 동작과 코어(8)에서 명령 또는 데이터를 판독하는 마이크로프로세서(6)의 동작은 제3실시 예와 동일하고, 그의 논의는 생략한다.
제5실시 예는 이상과 같이 구성하는 것으로, 데이터 큐(33)의 그룹을 소형화 할 수 있으므로, 반도체 집적 회로의 회로규모를 삭감하는 효과가 있다.
[제6실시 예]
제13도는 제6실시 예에 따른 반도체 집적 회로의 구성을 나타낸다.
참조부호(6-11, 26, 27, 29)는 제2실시 예와 동일의 구성성분을 나타낸다.
명령 큐(36)의 그룹의 각 큐는 마이크로프로세서(6)가 동시에 처리할 수 있는 n비트의 명령을 기억한다.
데이터 큐(37)의 그룹의 각 큐는 마이크로프로세서(6)가 n비트의 데이터를 동시에 처리할 수 있을 때, n(n×m)비트의 m배의 데이터를 기억한다.
제6실시 예에 있어서, (n×m,)비트 폭을 가진 데이터 큐(37)이 그룹에 접속된 데이터버스만 마이크로프로세서(6)의 내부 버스 폭보다 크다.
한편, n비트 폭의 명령버스는 마이크로프로세서(6)의 내부 버스 폭만큼 큰 명령 큐(36)의 그룹에 접속되고, 명령 버스의 남아있는 비트는 접속되어 있지 않고 개방되어 있다.
메모리(7)는 단 하나의 구조를 갖고, 큐(36, 37)의 그룹에 출력될 때, 명령과 데이터가 분리된다.
명령 큐(36)의 그룹은 n비트 폭의 명령을 기억하기 위한 구조를 가진다.
명확하게, 명령 큐(36)의 그룹의 각 큐는 D플립플롭으로 이루어져 있다.
명령 큐(36)의 그룹을 통해 전송된 n비트의 명령은 MUX를 통하지 않고 코어(8)에 직접 접속된다.
비록, 명령버스 및 데이터버스와 메모리(7)가 접속하는 공통의 버스가 사용되더라도, n비트 이외의 명령버스의 필요한 비트는 마이크로프로세서(6)에 의해 수신되지 않는다.
명령버스의 필요한 비트는 개방되어 있고, 또는 멀티플렉서에 의해 선택된다.
메모리(7)로부터 마이크로프로세서(6)로의 명령 또는 데이터를 판독하는 동작과 코어(8)에서 명령 또는 데이터를 판독하는 마이크로프로세서(6)의 동작은 제2실시 예와 동일하다.
제6실시 예는 이상과 같이 구성하는 것으로, 데이터 큐(33)의 그룹을 소형화할 수 있으므로, 반도체 집적 회로의 회로규모를 삭감하는 효과가 있다.
[제7실시 예]
제14도는 제7실시 예에 따른 반도체 집적 회로의 구성을 나타낸다.
참조부호(6-11, 26, 27, 29-31)는 제10도와 같은 동일의 구성성분을 나타낸다.
명령 큐(38의 그룹은 직렬로 접속된 복수의 큐로 이루어져 있고, 각 큐는 마이크로프로세서(6)가 동시에 처리할 수 있는 n비트의 명령을 기억한다.
데이터 큐(39)의 그룹은 직렬로 접속된 복수의 큐로 이루어져 있고, 각 큐는 마이크로프로세서(6)가 n비트의 데이터를 동시에 처리할 수 있을 대, n비트(n×m비트)의 m배의 데이터를 기억한다.
제7실시 예에 있어서, 메모리는 명령메모리(30)와 데이터메모리(31)로 분리된다.
데이터 큐(39)의 그룹에 접속된 데이터버스만 마이크로프로세서(6)의 내부버스 폭보다 더 큰 (n×m)비트 폭을 갖고, 명령 큐(38)의 그룹에 접속된 명령버스는 마이크로프로세서(6)의 내부버스 폭만큼 큰 n비트 폭을 갖는다.
명령 큐(38)의 그룹은 n비트 폭의 데이터를 기억하기 위한 구조를 갖는다.
명확하게, 명령 큐(38)의 그룹의 각 큐는 D플립플롭으로 이루어져 있다.
명령 큐(38)의 그룹을 통해 전송된 n비트 명령은 MUX를 통하지 않고 코어(8)에 직접 출력된다.
메모리(7)로부터 마이크로프로세서(6)로의 명령 또는 데이터를 판독하는 동작과 코어(8)에서 명령 또는 데이터를 판독하는 마이크로프로세서(6)의 동작은 제3실시 예와 동일하고, 그의 논의는 생략한다.
제7실시 예는 이상과 같이 구성하는 것으로, 메모리(7)가 명령 메모리(30)와 데이터 메모리(31)로 분리될 때, 명령 큐(38)의 그룹을 소형화 할 수 있으므로, 반도체 집적 회로의 회로규모를 삭감하는 효과가 있다.
[제8실시 예]
제15도는 제8실시 예에 따른 반도체 집적 회로의 구성을 나타낸다.
참조부호(6-11, 24, 26, 27, 29)는 제9도와 같은 구성성분을 나타낸다.
명령 큐(40)의 그룹은 직렬로 접속된 복수의 큐로 이루어져 있고, 각 큐는 마이크로프로세서(6)가 n비트의 명령을 동시에 처리할 수 있을 때, n비트(n×m비트)의 m배의 명령을 기억한다.
데이터 큐(41)의 그룹은 직렬로 접속된 복수의 큐로 이루어져 있고, 각 큐는 km1로 가정하여, n비트(n×k비트)의 k배의 데이터를 기억한다.
제8실시 예에 있어서, 명령 큐(40)의 그룹에 접속된 명령버스는 마이크로프로세서(6)의 내부 버스 폭의 m배인 (n×m)비트 폭을 갖고, 데이터 큐(41)의 그룹에 접속된 데이터버스는 마이크로프로세서(6)의 내부버스 폭의 k배(km)인 (n×k)비트 폭을 갖는다.
예컨데, 마이크로프로세서(6)가 동시에 처리할 수 있는 버스 폭이 8비트일 때, 마이크로프로세서(6)가 동시에 처리할 수 있는 버스 폭의 2배인 16비트의 명령은 메모리(7)로부터 명령큐(40)의 그룹까지 판독되고, 3배인 24비트폭의 데이타는 메모리(7)로 부터 데이타큐(41)의 그룹까지 판독된다.
데이타큐(41)의 그룹은 메모리(7)로 부터 판독하는 (n×m)비트 폭의 데이터를 기억하기 위한 구조를 갖는다.
명확하게, 데이터 큐(41)의 그룹의 각 큐는 (n×m)의 D플립플롭으로 이루어져 있다.
메모리(7)와 마이크로프로세서(6)는 (n×k)비트 폭의 공통의 버스와 접속된다.
명령과 데이터는 공통의 버스를 통해 마이크로프로세서(6)에 전송된다.
명령 큐(40)의 그룹에서는 명령버스로부터 명령의 필요한 (n×m)비트만이 판독된다.
나머지의 명령버스는 개방되어 있다.
비록, 메모리(7)가 단 하나의 구조를 갖더라도, 명령 큐(40)의 그룹과 데이터 큐(41)의 그룹에 입력될 때, 명령과 데이터가 각각 분리된다.
메모리(7)로부터 마이크로프로세서(6)로의 명령 또는 데이터를 판독하는 동작과 코어(8)에서 명령 또는 데이터를 판독하는 마이크로프로세서(6)의 동작은 제2실시 예와 동일하다.
제8실시 예는 이상과 같이 구성하는 것은 데이터 큐(41)의 그룹에 더 많은 데이터가 기억될 수 있도록 허락함으로, 다이나믹 스케줄링이 실현 용이하게 되며, 반도체 집적 회로의 처리능력이 향상한다.
[제9실시 예]
제16도는 제9실시 예에 따른 반도체 집적 회로의 구성을 나타낸다.
참조부호(6-11, 24, 26, 27, 29-31)는 제10도와 같은 동일의 구성성분을 나타낸다.
명령 큐(42)의 그룹은 직렬로 접속된 복수의 큐로 이루어져 있고, 각 큐는 마이크로프로세서(6)가 n비트의 명령을 동시에 처리할 수 있을 때, n비트(n×m비트)의 m배의 명령을 기억한다.
데이타큐(43)의 그룹은 직렬로 접속된 복수의 큐로 이루어져 있고, 각 큐는 km1로 가정하여, n비트(n×k)의 k배의 데이타를 기억한다.
제9실시 예에 있어서, 메모리(7)는 명령 메모리(3)와 데이터 메모리(31)로 분리된다.
명령 메모리(30)(는 (n×m)비트 폭의 명령 버스를 통해 명령 큐(42)의 그룹에 접속된다.
데이터 메모리(31)는 (n×m)비트 폭의 데이터버스를 통해 데이터 큐(43)의 그룹에 접속된다.
명령 메모리(30)와 데이터 메모리(31)는 n비트 폭의 어드레스버스를 통해 버스제어부(11)에 접속된다.
명령 큐(42)의 그룹의 각 큐는 (n×m) D플립플롭을 갖고, 데이터 큐(43)의 그룹의 각 큐는 (n×k) D플립플롭을 갖는다.
메모리(7)로부터 마이크로프로세서(6)로의 명령 또는 데이터를 판독하는 동작과 코어(8)에서 명령 또는 데이터를 판독하는 마이크로프로세서(6)의 동작은 제3실시 예와 동일하다.
제9실시 예는 이상과 같이 구성하는 것으로, 메모리가 명령 메모리(30)와 데이터 메모리(31)로 분리될 때, 마이크로프로세서(6)는 명령버스와 데이터버스를 각 버스 폭에서 엑세스할 수 있으므로, 제어용, 화상처리용 등을 위해 취급되는 데이터량에 의존하여 잘 발란스 된 구성을 이룰 수 있다.
[제10실시 예]
제17도는 제10실시 예에 따른 반도체 집적 회로의 구성을 나타낸다.
참조부호(6-11, 24, 26, 27-29)는 제9도와 같은 구성성분을 나타낸다.
명령 큐(44)의 그룹은 직렬로 접속된 복수의 큐로 이루어져 있고, 각 큐는 마이크로프로세서(6)가 동시에 처리할 수 있는 n비트의 명령을 기억한다.
데이터 큐(45)의 그룹은 직렬로 접속된 복수의 큐로 이루어져 있고, 각 큐는 마이크로프로세서(6)가 동시에 처리할 수 있는 n비트의 데이터를 기억한다.
공통의 큐(60)의 그룹은 직렬로 접속된 복수의 큐로 이루어져 있고, 각 큐는 명령 또는 데이터의 n×(m-1)비트를 기억한다.
공통의 큐(60)의 그룹은 명령 큐 제어부(26)와 데이터 큐 제어부(29) 각각에 의해 제어된다.
제10실시 예에 있어서, (n×m)비트의 명령 또는 데이터는 메모리(7)로부터 출력되고, (n×m)비트 중의 명령 또는 데이터의 n비트는 제1버스를 통해 마이크로프로세서(6)내의 명령 큐(44)의 그룹 또는 데이터 큐(45)의 그룹에 전송되며, 나머지 n×(m-1)비트의 명령 또는 데이터는 제2버스를 통해 마이크로프로세서(6)내의 공통의 큐(60)의 그룹에 전송된다.
마이크로프로세서(6)는 분기명령에 의해 새로운 분기선의 명령이 필요한 경우 또는 기억상황(바꾸어 말하면, 처리상황에 따라)에 따라 명령 또는 데이터가 요구되는 경우에는 언제나 버스 제어부(11)에 명령 또는 데이터를 위한 판독-요구 신호를 준다.
마이크로프로세서(6)로부터의 판독-요구 신호에 따라, 메모리(7)로부터의 명령(데이터)이 제1버스를 통해 마이크로프로세서(6)에 전송되는지 아니면 제2버스를 통해 전송되는지 결정된다.
상기 설명된 바와 같이, 제10실시 예에서, 공통의 큐(60)의 그룹과 메모리에 공통의 큐의 그룹을 접속하는 제2버스는 부가적으로 설치되고, 데이터 엑세스 상황에 따라, 마이크로프로세서(6)의 내부처리를 효율적으로 행할 수 있다.
[제11실시 예]
제18도는 제11실시 예에 따른 반도체 집적 회로의 구성을 나타낸다.
참조부호(6-11, 24, 26, 27-29)는 제9도와 같은 동일의 구성성분을 나타낸다.
제11실시 예는 제10실시 예와 같은 공통의 큐(60)의 그룹, 제1버스 및 제2버스를 포함한다.
또한, 캐시 메모리(46)는 메모리(7)와 마이크로프로세서(6)와의 사이에 설치된다.
캐시 메모리(46)는 메모리(7)와 비교해 소용량과 고속의 메모리이고, 이 캐시 메모리(46)에 기억된 명령 또는 데이터를 제2버스를 통해 마이크로프로세서(6)에 전송하도록 접속된다.
마이크로프로세서(6)는 버스 제어부(11)에 판독-요구신호와 어드레스신호를 주고, 버스제어부(11)는 캐시 메모리(46)에 어드레스신호를 준다.
그후, 어드레스 신호에 의해 지정된 캐시 메모리(46)의 어드레스 신호에 위치된 명령 또는 데이터는 마이크로프로세서(6)에 출력된다.
캐시 미스인 경우에는 메모리(7)로부터의 명령 또는 데이터를 캐시 메모리에 집어넣고, 그후 마이크로프로세서(6)에 출력한다.
캐시미스 시에 있어서, 메모리(7)로부터 캐시메모리(46)로의 명령 또는 데이터를 판독하는 것은 잘 알려져 있으므로, 그것의 설명은 생략한다.
상기 설명된 바와 같이, 제11실시 예에서, 캐시 메모리가 부가적으로 설치되어, 명령 엑세스 또는 데이터 엑세스가 고속화됨으로, 반도체 집적 회로의 고속 동작을 확보한다.
[제12실시 예]
제19도는 제12실시 예에 따른 반도체 집적 회로의 구성을 나타낸다.
참조부호(6-14)는 제1도와 동일의 구성성분을 나타낸다.
선택부(47)는 데이터버스로부터 (n×m)비트의 명령 또는 데이터를 수신하고, 큐(13)의 그룹에 명령 또는 데이터를 출력한다.
제12실시 예는 선택부(47)의 기능을 이용하여 큐(13)의 그룹에 가변장의 명령 또는 데이터를 효율적으로 전송할 수 있다.
예컨데, 제20A도에 나타난바와 같이, 큐(13)의 그룹이 4바이트의 명령 또는 데이터를 기억할 수 있는 4바이트의 명령(데이터), 1바이트의 명령(데이터)(2) 및 3바이트의 명령(데이터)(3)가 메모리(7)로부터 큐(13)의 그룹에 순차 전송되는 경우, 큐(132, 131)에 자유공간(행치부에 의해 지시된)이 있다.
선택부(47)의 사용은 제20B도에 나타난 바와 같이, 큐의 빈자리에 답해서 메모리(7)로부터의 명령 또는 데이터를 큐(13) 그룹에 기억할 수 있게 한다.
선택부(47)는 아래와 같은 방법으로 제어된다.
큐 제어부(14)는 큐(131)의 자유공간으로 여기는 정보, 즉, 마이크로프로세서(6)에 D플립플롭의 기억상태를 준다.
마이크로프로세서(6)는 큐제어부(14)와 메모리(7)로부터 가변장의 명령 또는 데이터의 바이트 수에 의해 주어진 큐(131)로 여기는 정보에 근거해서, 큐(131)의 자유공간에 메모리(7)로부터의 명령 또는 데이터가 기억될 수 있는지 없는지는 판단해서, 판단결과를 버스제어부(11)에 출력한다.
큐(131)가 명령 또는 판단결과를 수신하고, 큐(131)에 기억된 명령 또는 데이터를 다음 큐(132)에 시프트하여 큐(131)를 클릭어한다.
큐(131)가 메모리(7)로부터 명령 또는 데이터를 기억할 때, 버스 제어부(11)는 코어(8)로부터의 판단결과를 수신하여 선택부(47)에 허가신호를 준다.
허가신호를 수신한 선택부(47)는 큐(131)의 이용할 수 있는 위치를 판단해서, 그 위치에 메모리(7)로부터의 명령 또는 데이터를 전송한다.
버스제어부(11)가 선택부(47)에 허가신호를 주지 않는 경우, 상기 설명된바와 같이, 큐제어부(14)에 의해 클리어된 후의 큐(131)에 메모리(7)로부터의 명령 또는 데이터가 기억된다.
또한, 캐시 메모리(8)는 제21도에 나타난바와 같이, 마이크로프로세서(6)와 메모리(7)와의 사이에 설치되어도 된다.
그러한 구조를 가지는 제21도의 반도체 집적 회로에 있어서, 제19도의 반도체 집적회로와 비교해, 마이크로프로세서(6)는 캐시 메모리(48)로부터 고속인 (n×m)비트의 명령 또는 데이터를 큐(13)의 그룹에 집어넣을 수 있다.
명령 또는 데이터를 캐시 메모리(48)에서 찾지못하는 경우, 메모리(7)로부터의 (n×m)비트의 명령 또는 데이터는 캐시 메모리(48)에서 판독되어도 되고, 또한 마이크로프로세서(6)의 큐(13)의 그룹에 전송되게 마이크로프로세서(6)에 의해 그러한 제어가 행해진다.
상기 설명된바와 같이, 제12실시 예에 있어서, 선택부(47)는 부가적으로 설치되고, 가변장의 명령 또는 데이터에 대해서 큐(13)의 그룹의 유효한 이용을 도모한다.
또한, 캐시메모리(48)의 설치는 반도체 집적 회로의 고속동작을 확보한다.
[제13실시 예]
제22도는 제13실시 예에 따른 반도체 집적 회로의 구성을 나타낸다.
제13실시 예에 있어서, 선택부(49, 50)는 제9도의 반도체 집적 회로에 부가적으로 설치된다.
선택부(49)는 (n×m)비트 폭의 명령버스를 통해 메모리(7)와 접속되고, 선택부(50)은 (n×m)비트 폭의 데이터버스를 통해 메모리(7)와 접속된다.
선택부(49)는 명령코드(25)의 그룹의 최 하단의 큐, 선택부(50)는 데이터 큐(28)의 그룹의 최 하단의 큐에 각각 접속된다.
메모리(7)로부터의 가변장의 명령 또는 데이터는 명령 버스 또는 데이터버스를 통해 선택부(49, 50)에 입력된다.
제19도의 선택부(47)와 같이, 선택부(49, 50)는 최 하단의 명령 큐(25) 또는 데이터 큐(28)의 빈자리에 답하여 메모리로부터의 가변장의 명령 또는 데이터를 명령 큐(25) 또는 데니터 큐(28)의 그룹에 전송한다.
또한, 제23도에 나타난바와 같이, 캐시 메모리(51)는 메모리(7)와 마이크로프로세서(6)와의 사이에 부가적으로 설치되어도 된다.
상기 설명된바와 같이, 제13실시 예에 있어서, 큐의 그룹이 명령용 또는 데이터용으로 분리될 때, 선택부(49, 50)가 부가적으로 설치되어, 큐의 효율적 사용을 도모한다.
또한, 캐시 메모리(51)의 설치는 반도체 집적 회로의 고속동작을 확보한다.
[제14실시 예]
제24도는 제14실시 예에 따른 반도체 집적 회로의 구성을 나타낸다.
마이크로프로세서(52)는 데이터 버스와 어드레스 버스를 통해 메모리(53)와 접속된다.
얼라이너(54)는 데이터버스의 어떤 중심점에 배치되어 적절한 순서로 데이터를 입력하도록 마이크로프로세서(52)에 입력되는 데이터의 위치를 적절한 위치에 시프트시킨다.
제25도는 얼라이너(54)의 기능을 나타낸다.
메모리(7)로부터의 (n×m)비트의 데이터 중 마이크로프로세서(52)에서 처리되게 유효한 데이터(어두운 부분을 나타냄)의 위치를 시프트하는 필요가 생길 때, 얼라이너(54)는 마이크로프로세서(52)로부터 수신된 제어신호에 따라 유효한 데이터를 시프트하고, 마이크로프로세서(52)에 시프트된 데이터를 출력한다.
다른 크기의 데이터를 동일 비트 폭에서 처리하기 위해서는 얼라이너(54)가 필요하다.
마이크로프로세서(52)내부의 큐의 그룹은 상기 설명된 다른 실시예와 같이 설치된다.
이와 같이, 마이크로프로세서(52)의 성능 저하의 원인이었던 얼라이너가 마이크로프로세서(52)의 외부에 설치됨으로, 마이크로프로세서(52)의 내부동작이 보다 일층 경감된다.
마이크로프로세서(52)가 n비트의 데이터(명령)을 처리할 수 있을 때, 데이터버스(또는 명령버스)는 (n×m)비트 폭, 즉, n비트 폭의 m배를 갖는다.
또한, 복수의 명령 큐 또는 데이터 큐의 그룹이 마이크로프로세서(52)에 설치되어도 된다.
또한, 제26도에 나타난바와 같이, 버스가 명령버스와 데이터버스로 분리되고, 얼라이너(55,56)는 명령버스와 데이터버스의 중심점에 각각 배치되도록 구성하면 된다.
또한, 제27도에 나타난바와 같이, 메모리와 각 얼라이너(55, 56)와의 사이에 캐시메모리(58, 59)의 설치는 명령엑세스 또는 데이터 엑세스를 고속화함으로, 반도체 집적 회로의 고속동작을 확보한다.
제28도에 나타난바와 같이, 공통의 데이터버스가 설치되고, 캐시 메모리(57)가 얼라이너(54)와 메모리(53)사이에 설치되도록 구성함으로서, 반도체 집적 회로의 고속동작을 확보한다.
상기 발명은 상세히 설명되었지만, 상기 설명은 모든 관점의 예시적인 것이고 한정적인 것이 아니다.
발명의 범위는 첨부 청구범위에 의해 나타내고 있고 그들의 청구범위의 의미 중에 들어있는 전부 변형되는 것은 본원 발명에 포함되는 것이다.

Claims (25)

  1. n비트(n은 정수;n1)의 단위로 제1데이터를 처리하는 코어와, 외부메모리로부터 (n×m)비트 이하의 비트폭을 가지는 제2데이터를 수신하고 거기에 상기 제2데이터를 기억하는 (n×m)비트 폭(m1)의 적어도 하나의 큐와, 상기 적어도 하나의 큐로부터 상기 제2데이터를 수신하고 상기 제1데이터로서 상기 코어에 상기 제2데이터중의 n비트를 선택적으로 출력하는 멀티플렉서를 구비하는 반도체 집적 회로.
  2. 제1항에 있어서, 상기 적어도 하나의 큐는 서로 직렬 접속된 p큐(p는 정수;n1)를 포함하고, 상기 p큐는 큐의 그룹을 구성하고, 상기 반도체 집적 회로는 상기 p큐 중에서 다음 하나로 상기 제2데이터를 순차 시프트 함으로서 상기 멀티플렉서에 상기 제2데이터를 전송하는 큐 제어부를 더 구비하는 반도체 집적 회로.
  3. 제2항에 있어서, 상기 큐의 그룹에 상기 외부 메모리로부터 상기 제2데이터를 전송하는 (n×m)비트 폭의 버스를 더 구비하는 반도체 집적 회로.
  4. 제3항에 있어서, 상기 제2데이터는 가변장의 데이터이고, 상기 반도체 집적 회로는 상기 버스에 상기 큐 중의 최 하단의 소정의 메모리 위치에 상기 제2데이터를 출력하는 선택부를 더 구비한 반도체 집적 회로.
  5. 제4항에 있어서, 상기 버스에서의 어떤 중심점에 삽입된 캐시 메모리를 더 구비하는 반도체 집적 회로.
  6. (a) n비트(n은 정수;n1)의 단위로 제1명령 또는 제1데이터를 처리하는 코어, (b) 명령 큐 그룹은 (b-1) 외부 메모리로부터 (n×m)비트 폭의 비트 폭을 가지는 제2명령을 수신하고 거기에 상기 제2명령을 기억하는 (n×m)비트 폭의 제1명령 큐와, (b-2)(s-1)번째의 명령 큐로부터 상기 제2명령을 수신하고 거기에 상기 제2명령을 기억하는 (n×m)비트 폭의 s번째 명령 큐(1sp; p는 1이상의 정수)를 포함하고, p번째의 명령 큐에 상기 제1의 직렬 접속을 가지는 명령 큐의 그룹, (c) 데이터 큐의 그룹은 (c-1) 상기 외부 메모리로부터 (n×m)비트 이하의 비트 폭을 가지는 제2데이터를 수신하고 거기에 상기 제2데이터를 기억하는 (n×m)비트 폭(m1)의 제1데이터 큐와, (c-2)(t-1)번째의 데이터 큐로부터 상기 제2데이터를 수신하고 거기에 상기 제2데이터를 기억하는 (n×m)비트 폭의 t번째 데이터 큐(1tq; q는 1이상의 정수)를 포함하고, q번째의 데이터 큐에 상기 제1의 직렬 접속을 가지는 데이터 큐의 그룹, (d) 상기 명령 큐의 그룹과 상기 데이터의 그룹에서 각각 상기 제2명령과 상기 제2데이터를 순차 시프트하는 큐 제어부, (e) 상기 p번째의 명령 큐로부터 상기 제2명령을 수신하고 상기 제1명령으로서 상기 코어에 상기 제2명령 중의 n비트를 순차 출력하는 제1멀티플렉서, (f) 상기 q번째의 데이터 큐로부터 상기 제2데이터를 수신하고 상기 제1데이터로서 상기 코어에 상기 제2데이터 중의 n비트를 순차 출력하는 제2멀티플렉서를 구비하는 반도체 집적 회로.
  7. 제6항에 있어서, 상기 제2명령과 상기 제2데이터는 가변장의 데이터이고, 상기 반도체 집적회로는 (g) 상기 제1명령 큐의 소정의 메모리 위치에서 상기 제2명령을 출력하는 상기 명령큐의 그룹과 상기 외부메모리와의 사이에 배치된 제1선택부, (h) 상기 제1데이터 큐의 소정의 메모리 위치에 상기 제2데이터를 출력하는 상기 데이터 큐의 그룹과 상기 외부 메모리와의 사이에 배치된 제2선택부를 더 구비하는 반도체 집적 회로.
  8. 제6항에 있어서, (g) 상기 제3명령을 전송하는 상기 제1명령큐에 상기 외부 메모리를 접속하는 명령버스, (h) 상기 제2데이터를 전송하는 상기 제1 데이터 큐에 상기 외부메모리를 wq속하는 데이터버스를 더 구비하는 반도체 집적 회로.
  9. 제8항에 있어서, 상기 외부메모리는 명령 메모리와 데이터 메모리로 분리되고, 상기 명령버스와 상기 데이터 버스는 상기 명령 메모리와 상기 데이터 메모리에 각각 접속되는 반도체 집적 회로.
  10. (a) n비트(n은 정수;n1)의 단위로 제1명령 또는 제1데이터를 처리하는 코어, (b) 명령 z의 그룹은 (b-1) 외부 메모리로부터 제2명령중의 n비트를 수신하고 거기에 상기 제2명령중의 상기 n비트를 기억하는 n비트 폭의 제1명령 큐와, (b-2) (s-1)번째의 명령 큐로부터 상기 제2명령 중의 상기 n비트를 수신하고 거기에 상기 제2명령 중의 상기 n비트를 기억하는 n비트 폭의 s번째의 명령 큐(1sp; p는 1이상의 정수)를 포함하고, p번째의 명령큐에 상기 제1의 직렬 접속을 가지는 명령 큐의 그룹, (c) 데이터 큐의 그룹은 (c-1) 상기 외부 메모리로부터 제2데이터 중의 n비트를 수신하고 거기에 상기 제2데이터 중의 상기 n비트를 기억하는 n비트 폭의 제1데이터 큐와, (c-2) (t-1)번째의 데이터 큐로부터 상기 제2데이터 중의 상기 n비트를 수신하고 거기에 상기 제2데이터를 기억하는 n비트 폭의 t번째의 데이터 큐(1tq; q는 1이상의 정수(를 포함하고, q번째의 데이터 큐에 상기 제1의 직렬 접속을 가지는 데이터 큐의 그룹, (d) 양자의 상기 제2명령과 상기 제2데이터를 수신하고 거기에 그들을 기억하는 {n×(m-1)}비트 폭의 공통의 큐의 그룹, (e) 상기 명령 큐의 그룹과 상기 데이터 큐의 그룹 각각에서, 그리고 상기 공통의 큐의 그룹에서 상기 제2명령과 상기 제2데이터를 순차 시프트하는 큐 제어부, (f) 상기 제2명령과 상기 제2데이터를 전송하는 상기 제1명령 큐와 상기 제2데이터 큐에 상기 외부 메모리를 접속하는 n비트 폭의 제1버스, (g) 상기 제2명령과 상기 제2데이터를 전송하는 상기 공통의 큐의 그룹에 상기 외부 메모리를 접속하는 n×(m-1)비트 폭의 제2버스, (h) 상기 명령 큐의 그룹과 상기 공통의 큐의 그룹 양자로부터 상기 제2명령을 수신하고, 상기 제1명령으로서 상기 코어에 상기 제2명령 중의 상기 n비트를 선택적으로 출력하는 제1멀티플렉서, (i) 상기 데이터 큐의 그룹과 상기 공통의 큐의 그룹 양자로부터 상기 제2데이터를 수신하고, 상기 제1데이터로서 상기 코어에 상기 제2데이터 중의 상기 n비트를 선택적으로 출력하는 제2멀티플렉서를 구비하는 반도체 집적 회로.
  11. 제10항에 있어서, (j) 상기 제2버스의 어떤 중심점에 삽입된 캐시메모리를 더 구비하는 반도체 집적 회로.
  12. (a) n비트 (n은 정수;n1)의 단위로 제1명령 E는 제1데이터를 처리하는 코어, (b) 명령 큐의 그룹은 (b-1) 외부 메모리로부터 (n×m) 비트 이하의 버스 폭을 가지는 제2명령을 수신하고 거기에 상기 제2명령을 기억하는 (n×m)비트 폭(m1)의 제1명령 큐와, (b-2) (s-1)번째의 명령 큐로부터 상기 제2명령을 수신하고 거기에 상기 제2명령을 기억하는 (n×m)비트 폭의 s번째 명령 큐(1sp; p는 1이상의 정수)를 포함하고, p번째의 명령 큐에 상기 제1의 직렬 접속을 가지는 명령 큐의 그룹, (c) 데이터 큐의 그룹은 (c-1) 상기 외부메모리로부터 n비트 폭의 제2데이터를 수신하고 거기에 상기 제2데이터를 기억하는 n비트 폭의 제1데이터 큐와, (c-2) (t-1)번째의 데이터 큐로부터 상기 제2데이터를 수신하고 거기에 상기 제2데이터를 기억하는 n비트 폭의 t번째 데이터 큐(1tq; q는 1이상의 정수)를 포함하고, q번째의 데이터 큐에 상기 제1의 직렬 접속을 가지는 데이터 큐의 그룹, (d) 상기 명령 큐의 그룹과 상기 데이터의 그룹에서 각각 상기 제2명령과 상기 제2데이터를 순차 시프트하는 큐 제어부, (e) 상기 p번째의 명령 큐로부터 상기 제2명령을 수신하고 상기 제1명령으로서 상기 코어에 상기 제2명령 중의 n비트를 선택적으로 출력하는 멀티플렉서를 구비하고, 상기 제1데이터는 상기 q번째의 데이터 큐로부터 획득되는 반도체 집적 회로.
  13. 제12항에 있어서 (f) 상기 제2명령을 전송하는 상기 제1명령 큐에 상기 외부메모리를 접속하는 명령버스, (g) 상기 제2데이터를 전송하는 상기 제1데이터 큐에 상기 외부 메모리를 접속하는 데이터 버스를 구비하는 반도체 집적 회로.
  14. 제13항에 있어서, 상기 외부 메모리는 명령 메모리와 데이터 메모리로 분리되고, 상기 명령버스와 상기 데이터버스는 상기 명령메모리와 상기 데이터 메모리에 각각 접속되는 반도체 집적 회로.
  15. (a) n비트(n은 정수;n1)의 단위로 제1명령 또는 제2데이터를 처리하는 코어, (b) 명령 큐의 그룹은 (b-1) 외부 메모리로부터 n비트 폭의 제2명령을 수신하고 거기에 상기 제2명령을 기억하는 n비트 폭의 제1명령 큐와, (b-2) (s-1)번째의 명령 큐로부터 상기 제2명령을 수신하고 거기에 상기 제2명령을 기억하는 n비트 폭의 s번째의 명령 큐(1sp; p는 1이상의 정수)를 포함하고, p번째의 명령 큐에 상기 제1의 직렬 접속을 가지는 명령 큐의 그룹, (c) 데이터 큐의 그룹은 (c-1) 상기 외부메모리로부터 (n×m)비트 이하의 비트 폭을 가지는 제2데이터를 수신하고 거기에 사기 제2데이터를 기억하는 (n×m)비트 폭(m1)의 제1데이터 큐와, (c-2) (t-1)번째의 데이터 큐로부터 상기 제2데이터를 수신하고 거기에 사기 제2데이터를 기억하는 (n×m)비트 폭의 t번째의 데이터 큐(1tq; q는 1이상의 정수)를 포함하고, q번째의 데이터 큐에 상기 제1의 직렬 접속을 가지는 데이터 큐의 그룹, (d) 상기 명령 큐의 그룹과 상기 데이터 큐의 그룹에서 각각 상기 제2명령과 사기 제2데이터를 순차 시프트하는 큐제어부, (e) 상기 q번째의 데이터 큐로부터 상기 제2데이터를 수신하고 상기 제1데이터로서 상기 코어에 상기 제2데이터 중의 n비트를 선택적으로 출력하는 멀티플렉서를 구비하고, 상기 제1명령은 p번째의 명령 큐로부터 획득되는 반도체 집적 회로.
  16. 제15항에 있어서, (f) 상기 제2명령을 전송하는 상기 제1명령 큐에 상기 외부 메모리를 접속하는 명령버스, (g) 상기 제2데이터를 전송하는 상기 제1데이터 큐에 상기 외부메모리를 접속하는 데이터버스를 더 구비하는 반도체 집적 회로.
  17. 제16항에 있어서, 상기 외부메모리는 명령 메모리와 데이터 메모리로 분리되고, 상기 명령버스와 상기 데이터버스는 상기 명령 메모리와 상기 데이터 메모리에 접속되는 반도체 집적 회로.
  18. (a) n비트(n은 정수;n1)의 단위로 제1명령 또는 제2데이터를 처리하는 코어, (b) 명령큐의 그룹은 (b-1) 외부 메모리로부터 (n×m)비트 이하의 비트 폭을 가지는 제2명령을 수신하고 거기에 상기 제2명령을 기억하는 (n×m)비트 폭(m1)의 제1명령 큐와, (b-2) (s-1)번째의 명령 큐로부터 상기 제2명령을 수신하고 거기에 상기 제2명령을 기억하는 (n×m)비트 폭의 s번째의 명령 큐(1sp; p는 1이상의 정수)를 포함하고, p번째의 명령 큐에 상기 제1의 직렬 접속을 가지는 명령 큐의 그룹, (c) 데이터 큐의 그룹은 (c-1) 상기 외부 메모리로부터 (n×m)비트 이하의 비트 폭을 가지는 제2데이터를 수신하고 거기에 상기 제2데이터를 기억하는 (n×m)비트 폭(km)의 제1데이터 큐와, (c-2) (t-1)번째의 데이터 큐로부터 상기 제2데이터를 수신하고 거기에 상기 제2데이터를 기억하는 (n×k)비트 폭의 t번째 데이터 큐(1t≤q; q는 1상의 정수)를 포함하고, q번째의 데이터 큐에 상기 제1의 직렬 접속을 가지는 데이터 큐의 그룹, (d) 상기 명령 큐의 그룹과 상기 데이터 큐의 그룹에서 각각 상기 제2명령과 상기 제2데이터를 순차 시프트하는 큐제어부, (e) 상기 p번째의 명령 큐로부터 상기 제2명령을 수신하고 상기 제1명령으로서 상기 코어에 상기 제2명령 중의 n비트를 선택적으로 출력하는 제1멀티플렉서, (f) 상기 q번째의 데이터 큐로부터 상기 제2데이터를 수신하고 상기 제1데이터로서 상기 코어에 상기 제2데이터 중의 n비트를 선택적으로 출력하는 제2멀티플렉서를 구비하는 반도체 집적 회로.
  19. 제18항에 있어서, (g) 상기 제2명령을 전송하는 상기 제1명령 큐에 상기 외부 메모리를 접속하는 명령버스, (h) 상기 제2데이터를 전송하는 상기 제1데이터 큐에 상기 외부 메모리를 접속하는 데이터 버스를 더 구비하는 반도체 집적 회로.
  20. 제19항에 있어서, 상기 외부 메모리는 명령 메모리와 데이터 메모리로 분리되고, 상기 명령 버스와 상기 데이터 버스는 상기 명령 메모리와 상기 데이터 메모리에 각각 접속되는 반도체 집적 회로.
  21. 제3항에 있어서, 상기 버스의 어떤 중심점에 삽입된 얼라이너를 더 구비하는 반도체 집적 회로.
  22. 제8항에 있어서, 적어도 하나의 상기 명령 버스와 상기 데이터 버스의 어떤 중심점에 삽입된 얼라이너를 더 구비하는 반도체 집적 회로.
  23. 제13항에 있어서, 적어도 하나의 상기 명령 버스와 상기 데이터 버스의 어떤 중심점에 삽입딘 얼라이너를 더 구비하는 반도체 집적 회로.
  24. 제16항에 있어서, 적어도 하나의 상기 명령버스와 상기 데이터버스의 어떤 중심점에 삽입된 얼라이너를 더 구비하는 반도체 집적 회로.
  25. 제19항에 있어서, 적어도 하나의 상기 명령버스와 상기 데이터버스의 어떤 중심점에 삽입된 얼라이너를 더 구비하는 반도체 집적 회로.
KR1019950058784A 1994-12-28 1995-12-27 반도체 집적회로 KR0169555B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP94-327596 1994-12-28
JP6327596A JPH08185320A (ja) 1994-12-28 1994-12-28 半導体集積回路

Publications (2)

Publication Number Publication Date
KR960025044A KR960025044A (ko) 1996-07-20
KR0169555B1 true KR0169555B1 (ko) 1999-01-15

Family

ID=18200832

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019950058784A KR0169555B1 (ko) 1994-12-28 1995-12-27 반도체 집적회로

Country Status (4)

Country Link
US (1) US5621694A (ko)
JP (1) JPH08185320A (ko)
KR (1) KR0169555B1 (ko)
CN (1) CN1133454A (ko)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0858168A1 (en) 1997-01-29 1998-08-12 Hewlett-Packard Company Field programmable processor array
US5949272A (en) * 1997-06-12 1999-09-07 International Business Machines Corporation Bidirectional off-chip driver with receiver bypass
DE69841256D1 (de) 1997-12-17 2009-12-10 Panasonic Corp Befehlsmaskierung um Befehlsströme einem Prozessor zuzuleiten
DE69827589T2 (de) 1997-12-17 2005-11-03 Elixent Ltd. Konfigurierbare Verarbeitungsanordnung und Verfahren zur Benutzung dieser Anordnung, um eine Zentraleinheit aufzubauen
WO1999031574A1 (en) 1997-12-17 1999-06-24 Hewlett-Packard Company Implementation of multipliers in programmable arrays
JP2004240713A (ja) * 2003-02-06 2004-08-26 Matsushita Electric Ind Co Ltd データ転送方法及びデータ転送装置
JP4593252B2 (ja) * 2004-12-02 2010-12-08 パナソニック株式会社 半導体集積回路
US20070157030A1 (en) * 2005-12-30 2007-07-05 Feghali Wajdi K Cryptographic system component
US7900022B2 (en) * 2005-12-30 2011-03-01 Intel Corporation Programmable processing unit with an input buffer and output buffer configured to exclusively exchange data with either a shared memory logic or a multiplier based upon a mode instruction
KR100867269B1 (ko) * 2007-02-22 2008-11-06 삼성전자주식회사 프로세서의 추론적 로드 명령 실행 방법 및 상기 방법을채용한 프로세서
WO2010029682A1 (ja) * 2008-09-10 2010-03-18 株式会社ルネサステクノロジ 情報処理装置
FR2984657B1 (fr) * 2011-12-19 2014-01-10 Kalray Systeme d'emission de flots de donnees concurrents sur un reseau
US10902166B2 (en) * 2017-12-31 2021-01-26 Arteris, Inc. System and method for isolating faults in a resilient system
US10956086B2 (en) 2018-01-29 2021-03-23 Micron Technology, Inc. Memory controller

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6362064A (ja) * 1986-09-03 1988-03-18 Toyo Commun Equip Co Ltd バス変換装置
US5226126A (en) * 1989-02-24 1993-07-06 Nexgen Microsystems Processor having plurality of functional units for orderly retiring outstanding operations based upon its associated tags
JPH0397340A (ja) * 1989-09-11 1991-04-23 Fujitsu Ltd データバス幅変換回路
JPH0546535A (ja) * 1991-08-09 1993-02-26 Iwatsu Electric Co Ltd データ転送インタフエース装置
JPH05120211A (ja) * 1991-10-28 1993-05-18 Matsushita Electric Ind Co Ltd データバス幅制御装置
JP2836321B2 (ja) * 1991-11-05 1998-12-14 三菱電機株式会社 データ処理装置

Also Published As

Publication number Publication date
JPH08185320A (ja) 1996-07-16
US5621694A (en) 1997-04-15
KR960025044A (ko) 1996-07-20
CN1133454A (zh) 1996-10-16

Similar Documents

Publication Publication Date Title
KR0169555B1 (ko) 반도체 집적회로
US4181934A (en) Microprocessor architecture with integrated interrupts and cycle steals prioritized channel
EP0293851B1 (en) Digital signal processor
JP3955305B2 (ja) 縮小命令セット・コンピュータ・マイクロプロセッサーの構造
US5961628A (en) Load and store unit for a vector processor
US5185868A (en) Apparatus having hierarchically arranged decoders concurrently decoding instructions and shifting instructions not ready for execution to vacant decoders higher in the hierarchy
US4873626A (en) Parallel processing system with processor array having memory system included in system memory
US4891787A (en) Parallel processing system with processor array having SIMD/MIMD instruction processing
US5165023A (en) Parallel processing system with processor array and network communications system for transmitting messages of variable length
US5251306A (en) Apparatus for controlling execution of a program in a computing device
US6653859B2 (en) Heterogeneous integrated circuit with reconfigurable logic cores
US4378589A (en) Undirectional looped bus microcomputer architecture
US5418970A (en) Parallel processing system with processor array with processing elements addressing associated memories using host supplied address value and base register content
KR100341948B1 (ko) 제어된버스트메모리액세스기능을갖는데이타처리기및그방법
JPH0728786A (ja) ベクトルプロセッサ
US4339793A (en) Function integrated, shared ALU processor apparatus and method
US7007111B2 (en) DMA port sharing bandwidth balancing logic
US6167508A (en) Register scoreboard logic with register read availability signal to reduce instruction issue arbitration latency
US6018796A (en) Data processing having a variable number of pipeline stages
US5600819A (en) Memory with sequential data transfer scheme
US5572687A (en) Method and apparatus for priority arbitration among devices in a computer system
US4489395A (en) Information processor
JPH0461390B2 (ko)
US6604163B1 (en) Interconnection of digital signal processor with program memory and external devices using a shared bus interface
EP0472025A2 (en) A microprocessor

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee