KR100249536B1 - 다수의 버스를 서로 독립적으로 제어하기 위한 버스콘트롤러를 가진 데이터 처리기 - Google Patents
다수의 버스를 서로 독립적으로 제어하기 위한 버스콘트롤러를 가진 데이터 처리기 Download PDFInfo
- Publication number
- KR100249536B1 KR100249536B1 KR1019960028308A KR19960028308A KR100249536B1 KR 100249536 B1 KR100249536 B1 KR 100249536B1 KR 1019960028308 A KR1019960028308 A KR 1019960028308A KR 19960028308 A KR19960028308 A KR 19960028308A KR 100249536 B1 KR100249536 B1 KR 100249536B1
- Authority
- KR
- South Korea
- Prior art keywords
- bus
- address
- data
- cycle
- output
- Prior art date
Links
- 230000002093 peripheral effect Effects 0.000 claims abstract description 162
- 230000004044 response Effects 0.000 claims description 12
- 239000004065 semiconductor Substances 0.000 claims 3
- 230000005540 biological transmission Effects 0.000 claims 1
- 238000000605 extraction Methods 0.000 claims 1
- 230000006870 function Effects 0.000 abstract description 2
- 238000010586 diagram Methods 0.000 description 25
- 239000000872 buffer Substances 0.000 description 5
- 229910000831 Steel Inorganic materials 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000010959 steel Substances 0.000 description 1
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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3802—Instruction prefetching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/36—Handling requests for interconnection or transfer for access to common bus or bus system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4027—Coupling between buses using bus bridges
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Advance Control (AREA)
- Bus Control (AREA)
- Memory System (AREA)
Abstract
데이터 처리기는 외부 버스(95)를 경유하는 외부 메모리(100)로부터 명령을 인출하는 기능을 가진 마이크로컴퓨터(10)에 접속된 명령 저장용 메모리(100), 각각이 통합 주변 버스(90)와 상호접속되어 있는(40)에서 (49)까지의 다수의 주변 입력/출력 회로, 및 외부 버스에 대한 버스 상태 카운터(31)와 통합 주변 버스에 대한 버스 상태 카운터(32)둘다를 가지고 외부 버스(95)를 사용하는 외부 버스 사이클과 통합 주변 버스(90)를 사용하는 통합 주변 버스 사이클을 독립적으로 제어하는 마이크로컴퓨터(10)내의 버스 콘트롤러(30)를 포함한다.
Description
본 발명은 데이터 처리기에 관한 것으로, 특히, 다수의 버스를 서로 독립적으로 제어하기 위한 버스 콘트롤러를 가진 데이터 처리기에 관한 것이다.
최근, 원칩내에 형성된 중앙 처리 장치(CPU)와 다수의 주변 입/출력(I/O)회로를 가진 데이터 처리기가 마이크로컴퓨터 시스템에 널리 사용되고 있다. 이러한 마이크로컴퓨터 시스템에서는, 일련의 명령들을 저장하는 메모리가 외부 메모리로서 데이터 처리기 외부에 제공된다. 외부 메모리와 내부 주변 I/O 회로는 CPU에 의해 액세스되어, 외부 메모리로부터 명령들을 인출하고, I/O 회로로부터 데이터를 판독하거나 I/O 회로에 데이터를 기록한다. 이 주변 I/O 회로는 펄스 카운터, 일련의 데이터 수신/전송 회로 등으로 이용되며, 특정 어드레스 또는 단일 어드레스로 각각 매핑된 각각의 레지스터를 갖는다. 외부 메모리 영역과 주변 I/O 회로의 어드레스는 메모리맵 상에서 식별된다.
이제, 도9를 참조하면, 종래 기술에 따른 마이크로컴퓨터 시스템은 외부 버스(95)를 통해서 서로 접속된 외부 메모리(100) 및 데이터 처리기 또는 마이크로컴퓨터(10)를 포함한다. 마이크로컴퓨터(10)는 외부 버스 사이클 제어 신호군(96)을 사용하여 외부 메모리(100)에 액세스한다.
마이크로컴퓨터(10)는 CPU(20), 데이터 경로 회로(25), 버스 콘트롤러(30), 및 주변 I/O 회로(40 내지 49)로 구성된다. CPU(20)는 요구 신호 세트(93)를 버스 콘트롤러(30)로 출력하고 버스 콘트롤러(30)로 수신 확인 신호세트(94)를 수신한다. 또한, CPU(20)는 어드레스 버스(70), 데이터 출력 버스(71), 명령 버스(72), 및 데이터 입력 버스(73)를 통해 데이터 경로 회로(25)에 접속된다. CPU(20)는 어드레스와 기록 데이터를 데이터 경로 회로(25)에 출력하고, 데이터 경로 회로(25)로 부터 명령 코드와 판독 데이터를 수신한다.
버스 콘트롤러(30)는 내부 버스 상태 카운터(36)를 가지며 외부 버스 제어 명령세트(92)를 단자세트(66)에 출력하고 내부 주변 버스 제어 명령세트(91)를 주변 회로(40 내지 49)로 출력한다.
데이터 경로 회로(25)는 버스(77 및 78)를 경유하여 외부 버스(95)에 차례로 결합되어 있는 단자군(65)에 접속되어 있다. 또한, 데이터 경로 회로(25)는 버스(80 및 81)를 경유하여 내부 또는 통합 주변 버스(90)에 접속되어, 어드레스와 기록 데이터를 통합 주변 버스에 출력하고 판독 데이터를 수신한다. 주변 회로(40 내지 49)는 통합 주변 버스(90)에 접속되어 있다.
데이터 경로 회로(25)에는 여러가지 사전인출된 명령을 저장하는 명령큐(50), 사전인출한 어드레스를 저장하는 사전인출 포인터(PFP)(51), 어드레스/데이터를 래치하는 래치(52 내지 56), 및 셀렉터(61 및 62)를 제공한다. 래치(52)는 CPU(20)로부터의 어드레스를 일시적으로 래치한다. 셀렉터(61)는 래치(52)의 출력(74), 사전인출 포인터(51)의 사전인출 어드레스(75)및 CPU(20)로부터 출력된 버스(71)의 기록 데이터(71)중에서 하나를 선택하여, 버스 콘트롤러(30)로부터의 신호(미도시)의 제어하에서 그 선택된 하나를 버스(76)로 출력한다.
증분기(60)는 2만큼 증분된 버스(76)의 어드레스를 사전인출 포인터(51)로 출력한다. 사전인철 포인터(51)는 증분기(60)로부터의 어드레스를 기억하고 그 어드레스를 버스(75)를 통해서 셀렉터(61)로 출력한다. 래치(53)는 버스(76)상의 어드레스와 기록 데이터를 기억하고 그들을 버스(77)를 통해서 단자군(65)으로 출력한다. 래치(54)는 버스(78)를 통해서 단자군(65)으로 출력한다. 래치(54)는 버스(78)를 통해서 단자군(65)으로부터 입력된 판독 데이터를 기억하고 그 판독 데이터를 버스(79)를 통해서 명령큐(50)및 셀렉터(62)로 출력한다.
명령큐(50)는 버스(79)상의 사전인출된 데이터를 다수의 버퍼에 기억하고 그 기억된 데이터를 명령 데이터로서 버스(72)를 통해서 CPU(20)로 출력한다. 래치(55)는 버스(76)상의 어드레스와 기록 데이터를 기억하고 그들을 버스(80)을 통해서 통합 주변 버스(90)로 출력한다. 셀렉터(62)는 버스(79)상의 외부 메모리로부터의 판독 데이터 또는 버스(81)상의 주변 I/O 로부터의 판독 데이터중에서 한 데이터를 선택하고, 그 선택한 데이터를 버스 콘트롤러(30)로부터의 신호(미도시)의 제어하에서 래치(56)로 출력한다. 래치(56)는 셀렉터(62)로부터 판독 데이터를 기억하고 그 판독 데이터를 버스(73)를 통해서 CPU(20)로 출력한다.
이하, 버스 콘트롤러(30)의 동작을 설명한다.
버스 콘트롤러(30)는 메모리 액세스 요구, 브랜치(branch)요구, 및 큐(queue)판독 요구와 같은, CPU(20)로부터의 요구(93)에 응답하여 외부 버스 사이클 또는 통합 주변버스 사이클을 시작한다. 데이터 경로 회로(25)내의, 래치(52 내지 56), 셀렉터(61 및 62), 및 사전인출 포인터(51)가 제어되어, 액세스 동작이 완료될 때 수신 확인 신호(94)가 CPU(20)로 전송된다.
버스 콘트롤러(30)는 버스 상태를 카운트하는 내부 버스 상태 카운터(36)를 가진다.
외부 버스 사이클과 통합 주변 버스 사이클이 어떻게 변화하는 가를 나타낸 도10(a), 및 버스 사이클을 식별하기 위한 서비스 플래그의 상태를 나타낸 도10(b)를 참조하면, T1은 어드레스가 출력되는 상태를 나타내고, T2는 데이터가 출력 또는 입력되는 상태를 나타내며, T3은 버스 사이클의 종료 또는 버스 사이클이 시작되지 않은 상태를 나타낸다. 이러한 상태는 마이크로 컴퓨터(10)내의 시스템 클럭과 동기하여 변화한다. 버스 콘트롤러(30)는 버스 사이클형의 인식에 사용될 버스 상태 카운터(36)와 대응하는 서비스 플래그 SBRSVF(110), FETSVF(111), MEMSVF(112)및 IOMSVF(113)를 갖는다. SBRSVF(110)은 브랜치 사이클이 실행될 때 1이 되고, FETSVF(111)은 인출 사이클이 실행될 때 1이 된다. MEMSVF(112)는 외부 메모리 액세스 사이클이 실행될 때 1이 된다. IOMSVF(113)은 주변 I/O 액세스 사이클이 실행될 때 1이 된다.
버스 사이클이 시작되지 않을 때, 모든 서비스 플래그(110 내지 113)는 0이 된다. SBRSVF(110), FETSVF(111), 및 MEMSVF(112)는 외부 버스(95)상의 버스 사이클을 나타내는 반면, IOMSVF(113)는 통합 주변 버스(90)상의 버스 사이클을 나타낸다.
먼저, 리셋 상태에서 버스 상태는 T3이 된다. CPU(20)로부터 요구(93)가 발생될 때까지, 버스 상태는 T3을 유지한다. 요구(93)가 발생되면, 버스 상태는 T3에서 T1 로 변화한다. T1에서 T2로의 변화는 무조건적으로 행해진다. T2상태에서 대기 요구가 주어지면, 버스 상태는 T2로 유지될 것이다. 대기 요구가 주어지지 않으면, T2에서 T3 로의 변화가 행해진다.
다음, CPU(20)로부터의 요구(93)가 발생되면, 버스 콘트롤러(30)는 버스 사이클을 시작한다. 또 다른 버스 사이클이 이미 시작되어 있다면, 이미 시작된 버스 사이클이 종료될 때까지, 새로운 버스 사이클의 시작을 대기한다.
버스 사이클이 CPU(20)로부터의 메모리 요구(93)에 응답하여 시작될 때, 버스 콘트롤러(30)는 어드레스에 따라서 외부 메모리 액세스와 주변 I/O 액세스를 식별한다. 외부 메모리 액세스의 경우, MEMSVF(112)은 1로 세트되고 주변 I/O 액세스의 경우, IOMSVF(113)은 1로 세트된다.
또한, 버스 콘트롤러(30)는, 버스 사이클이 CPU(20)로부터의 브랜치 요구(93)에 응답하여 시작될 때, SBRSVF(110)을 1로 세트시킨다.
또한, CPU(20)로부터 어떠한 요구(93)도 없을 때, 버스 콘트롤러(30)는, 명령큐(50)의 버퍼가 채워지지 않은 한, 외부 메모리(100)로부터 명령을 인출하는 명령 인출 사이클을 시작한다. 이 경우, FETSVF(111)는 1로 설정된다.
버스 콘트롤러(30)는 서비스 플래그(110 내지 113)의 값을 기준으로, 버스 사이클을 식별하고, 그 버스 사이클의 유형에 따라서, 버스 콘트롤러(35)는 데이터 경로회로(25)내의 래치(52 내지 56), 셀렉터(61 및 62), 및 사전인출 포인터(51)를 제어한다.
타이밍 다이어그램인 도11을 참조하면, 외부 메모리의 N 어드레스로부터 명령을 인출하는 동안, 주변 I/O 회로의 M1과 M2어드레스가 액세스되어 판독될 때, 이 예에서는 모든 버스 사이클이 대기하는 것은 아니다. 명령 인출 사이클(1)이 시작될 때, 인출 사이클을 나타내는 FETSVF(111)는 1로 세트된다. T1상태에서, 셀렉터(61)는 사전인출된 어드레스(N)을 가진 버스(75)를 선택하고, 래치(53)는 어드레스(N)를 인출한 후, 그 어드세스를 외부 버스(95)로 출력한다. 사전인출 포인터(51)는, T1상태의 종료 타이밍에서, 증분기(60)에 의해 +2만큼 증분된 어드레스 N+2를 기억한다. 이 예에서, 명령의 인출은 2바이트 단위로 수행된다.
T2상태에서, 래치(54)는 외부 메모리(100)에서 외부 버스(95)로 전송된 데이터 n을 래치한 후, 그 데이터 n을 명령큐(50)로 인출한다. 명령큐(50)내에 저장된 명령 코드는 내부 명령 처리에 따라서 CPU(20)에 의해 인출된다.
T3상태는 버스 사이클의 종료 상태이다.
이제, CPU(20)가 명령 인출 사이클(1)의 T1에서 주변 I/O회로 액세스 요구를 발생시켰다고 가정한다. 버스 콘트롤러(30)는 외부 메모리 액세스 사이클과 명령 인출 사이클 상의 주변 I/O 액세스 사이클을 우선적으로 갖기 때문에, 다음의 버스 사이클은 주변 I/O 액세스 사이클이 된다. 버스 콘트롤러(30)는 명령 인출 사이클(1)의 종료를 대기한 후, FETSVF(111)를 0으로 리셋시키고 IOMSVF(113)를 1로 세트시킨다. 또한, 버스 콘트롤러(30)는 주변 I/O 액세스 사이클을 제어하기 위해 데이터 경로회로(25)를 스위칭 제어한다.
주변 I/O 액세스 사이클의 T1상태에서, 셀렉터(61)는 엑세스될 어드레스 M1를 갖는 버스(74)를 선택한다. 래치(55)는 어드레스(M1)를 인출한 후, 그 어드레스를 통합 주변 버스(90)로 출력한다. 이때, 사전인출 포인터(51)는 어드레스를 업데이트하지 않는다.
T2상태에서, 주변 I/O 회로로부터 통합 버스(90)로 전송된 데이터(m1)는, 셀렉터(62)를 제어함으로서, 버스(81)를 통해서 래치(56)로 인출된다. 래치(56)내에 인출된 데이터(m1)는 CPU(20)에 의해 판독된다. T3상태는 버스 사이클의 종료 상태이다. 이 상태에서, 버스 콘트롤러(30)는 주변 I/O 액세스 사이클이 종료되었음을 CPU(20)에 알려주는 수신 확인신호(94)를 출력한다.
주변 I/O 액세스 사이클이 종료되었기 때문에, 그 사이클은 다시 명령 인출 사이클이 된다. 명령 인출 사이클(2)이 시작될 때, IOMSVF(113)은 0으로 리셋되고 FETSVF(111)은 1로 세트된다. 그후, 명령 인출 사이클(1)과 함께, 데이터 n2가 메모리(100)의 N+2어드레스로부터 판독되어 명령큐(50)로 인출된다.
이제, 명령 인출 사이클(2)동안, CPU(20)가 주변 I/O 회로에의 액세스를 요구한다고 가정하자. 버스 콘트롤러(30)는, 다시 FETSVF(111)를 0으로 리셋시키고, IOMSVF(113)은 1로 세트시킴으로써, 주변 I/O 회로에의 액세스 사이클(2)을 시작한다. 주변 I/O 회로에의 액세스 사이클(1)처럼, 버스 콘트롤러(30)는 제어를 스위칭하여, 주변 I/O 회로의 M2 어드레스로부터 데이터 m2를 판독한다.
상술한 종래의 데이터 처리기에서는, 버스 콘트롤러(30)의 통합 버스상태 카운터(36)가 하나의 버스 상태 카운터를 갖고 있다. 따라서, 외부 버스 사이클과 통합 주변버스 사이클이 둘다 시작되는 경우에는, 그들을 하나씩 실행한다. 즉, 이들 양자를 동시에 실행할 수 없다.
따라서, 주변 I/O 액세스 사이클의 시작은 인출 명령 사이클이 종료될 때까지 대기한다. 또, 주변 I/O 사이클의 시작 때문에, 명령 인출 사이클이 인터럽트되었다.
특히, 내장된 데이터 처리기, 특히 마이크로컴퓨터가 로드/저장 명령이 기본 명령인 감소명령 세트 컴퓨터형(이하, RISC라 지칭함)으로 이용되는 경우에는, 예를들여, 종종 메모리 액세스 명령이 전체명령의 50%를 차지하고 주변 I/O 회로에 대한 메모리 액세스가 25%를 점유한다.
이러한 경우, 전체명령의 25%, 즉, 1/4의 명령이 실행되면, 외부 버스 사이클과 통합 주변 버스 사이클을 동시에 실행할 수 없기 때문에 버스의 듀티비가 감소되어, 시스템의 처리능력을 저하시키게 된다.
따라서, 본 발명의 목적은 인출 사이클과 통합 주변 버스 사이클을 병렬로 실행할 수 있는 데이터 처리기를 제공하는데 있다.
도1은 본 발명의 데이터 처리기의 제1실시예를 도시한 블록도.
도2(a)는 도1의 통합 주변 버스상태 카운터의 3가지 상태를 기억하기 위한 2-비트 카운터를 도시한 회로도.
도2(b)는 2-비트 카운터의 3가지 상태를 도시한 도면.
도3(a)는 외부 버스 사이클의 상태 변화도.
도3(b)는 외부 버스 사이클을 식별하기 위한 서비스 플래그의 상태도.
도4(a)는 통합 주변 버스 사이클의 상태 변화도.
도4(b)는 통합 주변 버스 사이클을 식별하기 위한 서비스 플래그의 상태도.
도5는 제1실시예의 주변 I/O 액세스 사이클의 타이밍 다이어그램.
도6은 본 발명의 데이터 처리기의 제2실시예를 도시한 블록도.
도7(a)는 버스 점유에 따른 외부 버스 사이클의 상태 변화도.
도7(b)는 외부 버스 사이클을 식별하기 위한 서비스 플래그의 상태도.
도8은 제2실시예의 주변 I/O 액세스 사이클의 타이밍 다이어그램.
도9는 종래의 데이터 처리기를 도시한 블록도.
도10(a)는 종래의 데이터 처리기의 외부 버스 사이클의 상태 변화도.
도10(b)는 종래의 데이터 처리기의 외부 버스 사이클을 식별하기 위한 서비스 플래그의 상태도.
도11은 종래의 데이터 처리기의 주변 I/O 액세스 사이클의 타이밍 다이어그램.
* 도면의 주요부분에 대한 부호의 설명
10 : 마이크로컴퓨터 20 : CPU
30 : 버스 콘트롤러 40~49 : 주변 I/O 회로
51 : 사전인출 포인터 61, 62, 63 : 셀렉터
65 ~ 67 : 단자군 70 ~ 82 : 버스
90 : 통합 주변 버스 91, 92 : 버스 제어 신호세트
93 : CPU로 부터의 요구 100 : 외부 메모리
상기 목적을 달성하기 위하여, 본 발명의 데이터 처리기는, 중앙 처리 장치, 제1 회로에 접속된 제1버스, 제1버스에 독립적으로 제공되며 제2회로에 접속된 제2버스, 및 제1카운터와 제2카운터에 의해 제1 및 제2버스를 각각 독립적으로 제어하는 버스 콘트롤러를 구비하며, 중앙처리장치에 의해, 중앙 처리 장치가 제1카운터를 세트시킬 때, 제 1버스가 제1회로에 의해 제1사이클로 점유되며, 중앙 처리 장치가 제2카운터를 세트시킬 때, 제2버스가 제2회로에 의해 제2사이클로 점유되며, 제2사이클이 제1사이클과 병렬로 수행된다.
따라서, 제1사이클과 제2사이클이 병렬로 실행되게 된다. 그러므로, 처리 능력을 증대시킬 수 있게 된다.
본 발명의 상기 목적과 다른 목적, 특징 및 이점은, 첨부 도면을 참조한 하기 설명으로부터 명백히 알수 있을 것이다.
이제, 도1, 도2(a), 및 도2(b)를 참조하면, 본 발명의 제1실시예에 따른 마이크로컴퓨터 시스템은 외부 버스(95)를 경유하여 상호 접속된 메모리(100), 및 데이터 처리기 또는 마이크로컴퓨터(10)를 포함한다. 마이크로컴퓨터(10)는 외부 버스 사이클 제어 신호군(96)을 외부 메모리(100)로 출력한다.
마이크로컴퓨터(10)는 CPU(20), 데이터 경로 회로(25), 버스 콘트롤러(30), 및 주변 회로(40 내지 49)를 포함한다. CPU(20)는 요구 신호세트(93)를 버스 콘트롤러(30)로 출력하고, 버스 콘트롤러(30)로부터 수신확인 제어 신호세트(94)를 수신한다.
또한, CPU(20)는 어드레스 버스(70), 출력 데이터 버스(71), 명령 버스(72), 및 입력 데이터 버스(73)를 경유하여 데이터 경로 회로(25)에 접속된다. CPU(20)는 어드레스와 기록 데이터를 데이터 경로회로(25)에 입력하며, 데이터 경로 회로(25)로부터 명령 코드와 판독 데이터를 수신한다.
버스 콘트롤러(30)는 외부 버스 상태 카운터(31)및 통합 주변 버스 상태 카운터(32)를 포함한다. 버스 콘트롤러(30)는 외부 버스 제어 신호군(92)을 단자세트(66)로 출력하며, 통합 주변 버스 제어 신호세트(91)를 주변회로(40 내지 49)로 출력한다.
데이터 경로회로(25)는 버스(77 및 78)를 경유하여 단자세트(65)에 접속되며, 어드레스와 기록 데이터를 외부에 출력하고 판독 데이터를 입력한다.
이와 유사하게, 데이터 경로 회로(25)는 버스(80 및 81)를 경유하여 통합 주변 버스(90)에 접속되며, 어드레스와 기록 데이터를 통합 주변 버스로 출력하고 판독 데이터를 입력한다.
주변 회로(40 내지 49)는 각각 통합 주변 버스(90)에 접속된다.
데이터 경로 회로(25)에는 사전인출된 명령을 저장하는 명령큐(50), 사전인출된 어드레스를 저장하는 사전인출 포인터(PFP)(51), 어드레스/데이터를 기억하는 래치(52 내지 56), 및 셀렉터(61 내지 63)가 제공되며, 이 장치들은 버스(70 내지 82)에 대응하여 각각 접속되어 있다.
래치(52)는 CPU(20)가 버스(70)에 접속하는 어드레스를 기억한다. 셀렉터(61)는 래치(52)의 어드레스(74), 사전인출 포인터(51)의 사전 인출 어드레스(75) 및 CPU(20)로부터의 기록 데이터(71)중에서 하나를 선택하고, 그 선택된 하나를 버스 콘트롤러(30)로부터의 신호(미도시)의 제어하에서 버스(76)로 출력한다.
증분기(60)는 2만큼 증분된 버스(76)의 어드레스를 사전인출 포인터(51)로 출력한다. 사전인출 포인터(51)는 증분기(60)로부터의 어드레스를 기억하고, 그 어드레스를 버스(75)를 경유하여 셀렉터(61)로 출력한다.
래치(53)는 버스(76)상의 어드레스 및 기록 데이터를 기억하고, 그들을 버스(77)를 경유하여 단자군(65)으로 출력한다. 래치(54)는 버스(78)를 경유하여 단자군(65)으로부터 입력된 판독 데이터를 기억하고, 그 판독 데이터를 버스(79)를 경유하여 명령큐(50)와 셀렉터(62)로 출력한다.
명령큐(50)는 버스(79)상의 사전인출된 데이터를 다수의 버퍼에 기억하고, 그 기억된 데이터를 명령 데이터로서 버스(72)를 경유하여 CPU(20)로 출력한다. 셀렉터(63)는 래치(52)의 어드레스(74)또는 CPU(20)의 기록 데이터(71)중에서 하나를 선택하고, 그 선택된 어드레스 또는 기록 데이터를 버스 콘트롤러(30)로부터의 신호(미도시)의 제어하에서 버스(82)로 출력한다.
래치(550 는 버스(82)상의 어드레스 및 기록 데이터를 기억하고, 그들을 버스(80)를 경유하여 통합 주변 버스(90)로 출력한다. 셀렉터(62)는 버스(79)상의 외부 메모리로부터의 판독 데이터 또는 버스(81)상의 주변 I/O 로부터의 판독 데이터 중에서 하나를 선택하고, 그 선택된 하나를 래치(56)로 출력한다. 래치(56)는 셀렉터(62)로부터의 판독 데이터를 기억하고, 그 판독 데이터를 버스(73)를 경유하여 CPU(20)로 출력한다. 통합 주변 버스 상태 카운터(32)는 제1플리플롭 회로(FF1)(322)및 제2플리플롭 회로(FF2)(324)를 포함한다. 제1플리플롭 회로(FF1)(322)는 리셋 단자(R)를 가지며, 클럭 신호(CLK)와 동기하여, 데이터 입력단자(D)에 접속된 AND 회로(321)의 출력 데이터를 판독한다. 이와 마찬가지로, 제2플리플롭 회로(FF2)(324)는 리셋 단자(R)를 가지며, 클럭 신호(CLK)와 동기하여, 데이터 입력단자(D)에 접속된 AND-OR회로(323)의 출력 데이터를 판독한다. 제1플리플롭 회로(322)는 출력단자(Q)는 AND-OR 회로(323)의 OR 회로의 입력단자에 접속되며, 또한 NOR 회로(325)의 하나의 입력단자에 접속된다.
플리플롭 회로(324)의 출력단자(Q)는 NOR 회로(325)의 다른 하나의 입력단자에 접속된다. NOR 회로(325)의 출력단자는 AND 회로(321)의 하나의 입력단자에 입력된다. AND 회로(321)의 다른 하나의 입력단자는, 통합 주변 버스 사이클이 시작하는 요인이 있을 때, 하이 레벨이 되는 신호(A)가 인가된다.
AND-OR 회로(323)의 AND 회로의 다른 하나의 입력단자에는, 통합 주변 버스 사이클이 대기 상태에 있을 때 하이레벨이 되는 신호(B)가 인가된다.
플리플롭 회로(322 및 324)의 출력은 주변 회로 버스 상태에 대해 각각 세트 신호(PT1 및 PT2)로 선택되며, NOR 회로(325)의 출력은 주변 회로 버스 상태에 대해 세트 신호(PT3)로 선택된다.
종래의 예와 다른 점은, 종래의 예의 버스 콘트롤러(35)가 외부 버스 사이클과 통합 주변 버스 사이클 양자의 사이클 수를 카운트하는 버스 상태 카운터(36)를 갖는 반면, 이 실시예에서는, 버스 콘트롤러(30)가 2개의 카운터, 즉, 외부 버스에 대한 버스 상태 카운터(31)및 통합 주변 버스 사이클에 대한 버스 상태 카운터(32)로 구성된다는 것이다. 여기에, 2-비트 카운터가 3가지 상태를 기억하기 위하여 부가된다.
또한, 외부 메모리와 주변 I/O 액세스 사이클로부터의 명령 인출 사이클이 동시에 시작될 수 있도록, 상술한 셀렉터(63)가 부가된다. 통합 주변 버스(90)의 비트 넓이가 16비트로 선택되면, 16개의 셀렉터가 부가된다. 다른 부분에는, 하드웨어가 부가되지 않는다.
이하, 버스 콘트롤러(30)의 동작을 설명한다.
버스 콘트롤러(30)는, 종래의 데이터 처리기의 버스 콘트롤러(30)와 같이, 메모리 액세스 요구, 브랜치 요구, 및 큐 판독 요구와 같은 CPU(20)로 부터의 요구(93)에 응답하여, 외부 버스 사이클 또는 통합 주변 버스 사이클을 시작한다. 데이터 경로회로(25)내의, 래치(52 내지 56), 셀렉터(61 내지 63), 및 사전인출 포인터(51)가 제어되며, 액세스 동작이 완료될 때, 수신확인 신호(94)가 CPU(20)로 보내진다.
버스 콘트롤러(30)는, 콘트롤러(30)의 내부에, 외부 버스 및 통합 주변 버스의 버스 상태를 각각 카운트하는, 통합 주변 버스 상태 카운터(32)및 외부 버스 상태 카운터(31)를 갖는다.
그러므로, 도2(a)및 2(b)를 다시 참조하면, 3가지 상태를 기억하기 위한 2-비트 카운터가 후술할 통합 주변 버스 상태 변화도를 구현한다. 이 3가지 상태는 PT1, PT2 및 PT3로 구성된다. PT1상태는 플리플롭(FF1)이 논리 하이레벨("1")이고 플리플롭(FF2)가 논리 로우레벨("0")인 상태이다.
PT2상태는 플리플롭(FF1)이 0이고 플리플롭(FF2)이 1인 상태이다. PT3는 플리플롭(FF1)및 플리플롭(FF2)양자가 0인 상태이다.
이들 플리플롭(FF1및 FF2)은 시스템 클럭이 로우레벨(0)에서 하이레벨(1)로 상승할 때의 타이밍에서 데이터 인출 동작을 수행한다.
먼저, FF1및 FF2의 논리 레벨은, 리셋시, 로우레벨(0)이 되며, 그 상태는 PT3 상태가 된다. 통합 주변 버스 사이클을 시작하는 요인이 있을 때 하이레벨(1)이 되는 신호(A)가 인가되면, FF1의 레벨은 하이레벨(1)이 되며 FF2의 레벨은 로우 레벨(0)이 되므로, 그 상태는 PT1상태가 된다. 그후, FF1이 로우(0)가 되고 FF2가 하이레벨(1)되면, 그 상태는 PT2상태가 된다.
통합 주변 버스 사이클이 대기 상태일 때 하이("1")가 되는 신호(B)가 하이("1")인 동안, PT2상태가 유지된다. 신호(B)가 로우("0")가 되면, FF1 및 FF2는 둘다 로우("0")가 되므로, 그 상태는 PT3상태가 된다.
FF1, FF2 및 FF3상태는 통합 주변 버스 제어 신호(91)를 발생시키고 데이터 버스(25)를 제어하는데 사용된다.
외부 버스 사이클의 상태 변화도를 나타낸 도3(a), 외부 버스 사이클을 식별하기 위한 서비스 플래그의 상태도를 나타낸 도3(b), 통합 주변 버스 사이클의 상태 변화도를 나타낸 도4(a), 및 상태의 종류의 판단하기 위한 서비스 플래그의 상태를 나타낸 도 4(b)를 참조하면, T1은 어드레스가 외부 버스로 출력되는 상태를 나타내며, T2는 외부 버스로 출력되거나 외부 버스로부터 입력되는 상태를 나타내고, T3 는 외부 버스 사이클의 종료 상태 또는 외부 버스 사이클이 시작되지 않은 상태를 나타낸다.
이와 유사하게, PT1은 어드레스가 통합 주변 버스로 출력되는 상태이다. PT2 는 데이터가 통합 주변 버스로 출력되거나 통합 주변 버스로부터 입력되는 상태이다. PT3는 통합 주변 버스 사이클의 종료 상태 또는 통합 주변 버스가 시작되지 않은 상태이다. 이들 상태들은 마이크로컴퓨터(10)의 시스템 클럭과 동기하여 변화한다.
버스 콘트롤러(30)는 외부 버스 상태 카운터(31)와 대응하는 서비스 플래그(110 내지 112)를 갖는다. 서비스 플래그는 외부 버스 사이클을 식별하는데 사용된다. 브랜치 사이클이 실행될 때, SBRSVF(110)은 1이 된다. 인출 사이클이 실행될 때, FETSVF(111)는 1이 된다. 외부 메모리 액세스 사이클이 실행될 때, MEMSVF(112)는 1이 된다. 외부 버스 사이클이 시작되지 않을 때, 모든 서비스 플래그(100 내지 112)는 0이 된다.
또한, 버스 콘트롤러(30)는 통합 주변 버스 상태 카운터(32)와 대응하는 서비스 플래그(113)를 갖는다. 서비스 플래그는 통합 주변 버스 사이클의 상태를 식별하기 위해 사용된다. 주변 I/O 액세스 사이클이 시작될때, IOMSVF(113)은 1이 된다. 주변 I/O 액세스 사이클이 시작되지 않을 때, IOMSVF(113)은 0이 된다.
먼저, 리셋 상태에서, 외부 버스 상태와 통합 주변 버스 상태는 각각 T3 및 PT3 상태가 된다. 이 버스 상태는, CPU(20)으로부터 요구(93)가 발생될 때까지, 바뀌지 않고 유지된다. CPU(20)으로부터 요구(93)가 발생될 때, 버스 콘트롤러(30)는 버스 사이클을 시작한다. 또 다른 버스 사이클이 이미 시작된 경우에는, 이미 시작된 버스 사이클이 종료될 때까지, 새로운 버스 사이클의 시작을 대기한다.
상술한 바와 같이, 외부 메모리 영역과 주변 I/O 영역을 메모리 맵에 의해 식별하고, 데이터가 액세스될 때, 액세스의 대상이 외부 메모리인지 주변 I/O 인지를, 버스 콘트롤러(30)가 어드레스 에 따라서 판단한다. 그러므로, 버스 사이클이 CPU(20)로부터의 메모리 요구(93)에 응답하여 시작될 때, 버스 콘트롤러(30)는, 어드레스에 따라서, 외부 메모리 액세스와 주변 I/O 액세스를 식별한다. 외부 메모리 액세스의 경우, MEMSVF(112)는 1로 세트되고, 외부 버스 상태는 T1상태로 변화한다. 주변 I/O 액세스의 경우, IOMSVF(113)는 1로 세트된다. 통합 주변 버스 상태는 PT1 상태로 변화한다.
외부 버스 상태는 T1상태에서 T2상태로 무조건적으로 변화한다. T2상태에서, 외부 버스 상태에 응답하여 대기 요구가 발생되면, 외부 버스 상태는 T2로 유지된다. 대기 요구가 없는 경우, 외부 버스 상태는 T3상태로 변화한다.
통합 주변 버스 상태의 PT1에서 PT2로의 변화는 항상 무조건적으로 행해진다. PT2상태에서, 통합 버스 상태에 응답하는 대기 요구가 발생되면, 통합 주변 버스 상태는 PT2로 유지된다. 대기 요구가 없는 경우, 통합 주변 버스 상태는 PT3상태로 변화하며 대기 상태가 된다. 또한, CPU(20)으로 부터의 브랜치 요구(93)에 응답하여 버스 사이클이 시작될 때, 버스 콘트롤러(30)는 SBRSVF(110)을 하이레벨("1")로 세트하고 외부 버스 상태는 T1상태로 변화한다.
또한, CPU(20)으로부터 요구(93)가 없는 경우에도, 버스 콘트롤러(30)는, 명령큐(50)의 버퍼가 모두 채워지지 않은 한, 외부 메모리(100)로부터의 명령을 인출하는 명령 인출 사이클을 시작한다. 이 경우, FETSVF(111)는 1 로 세트되며 외부 버스 상태는 T1상태로 변화한다.
버스 콘트롤러(30)는 서비스 플래그(110 내지 113)의 값을 기준으로, 버스 사이클을 식별하고, 그 버스 사이클의 종류에 따라서, 버스 콘트롤러(30)는 데이터 경로 회로(25)내의 래치(52 내지 56), 셀렉터(61 내지 63), 및 사전인출 포인터(51)를 제어한다. 도5는 주변 I/O의 M1, M2, M3, 및 M4 어드레스가 외부 메모리의 N 어드레스로부터의 명령을 인출하는 동안 액세스 되어 판독될 때의 타이밍 다이어그램이다. 이 예에서, 모든 버스 사이클이 대기하는 것은 아니다.
명령 인출 사이클(1)이 시작될 때, 버스 콘트롤러(30)는 인출 사이클을 나타내는 FETSVE(1)을 1로 세트시킨다. T1 상태에서, 셀렉터(61)는 사전인출된 어드레스(N)를 가진 버스(75)를 선택하고, 래치(53)는 어드레스(N)를 인출한 후 그 어드레스를 외부 버스(95)로 출력한다.
사전인출 포인터(51)는 증분기(60)에 의해 +2만큼 증분된 어드레스(N+2)(33)를 기억한다. 이 예에서, 명령의 인출은 2바이트 단위로 수행된다.
T2상태에서, 리치(54)는 외부 메모리(100)에서 외부 버스(95)로 전송된 데이터(n)를 래치한 후, 그 데이터(n)를 명령큐(50)로 인출한다.
명령큐(50)에 저장된 명령 코드는 내부 명령 처리에 따라서 CPU(20)에 의해 인출된다.
T3상태는 버스 사이클의 종료 상태이다.
이제, CPU(20)가, 명령 인출 사이클(1)의 T1에서, 주변 I/O 액세스 요구를 발생시켰다고 가정하자. 주변 버스(90)에는 버스 사이클이 시작되지 않았기 때문에, 버스 콘트롤러(30)는 IOMSVF(113)를 1로 세트시킨 후, 즉시 주변 I/O 액세스 사이클을 시작한다.
주변 I/O 액세스 사이클의 PT1상태에서, 셀렉터(63)는 액세스 어드레스(M1)을 가진 버스(74)를 선택한다. 래치(55)는 어드레스(M1)를 인출하고, 그 어드레스(M1)를 통합 주변 버스(90)로 출력한다. 이때, 명령인출 사이클과 주변 I/O 사이클은, 외부 메모리로부터의 명령 인출 사이클로 사용되는 래치(52 내지 54)가 셀렉터(61)에 관여하지 않기 때문에, 동시에 시작될 수 있다.
T2상태에서, 주변 I/O 로부터 통합 버스(90)에 전송된 데이터(m1)는, 셀렉터(62)를 제어함으로서, 버스(81)를 경유하여 래치(56)로 인출된다. 래치(56)내에 인출된 데이터(m1)는 CPU(20)에 의해 판독된다.
PT3 상태는 버스 사이클의 종료 상태이다. 이 상태에서, 버스 콘트롤러(35)는 메모리 액세스 사이클이 종료되었음을 CPU(20)에 알려주는, 수신 확인 신호(94)를 출력한다.
한편, 주변 I/O 액세스 사이클(1)의 시작 동안에, CPU(20)는 다음 주변 I/O 에 엑세스하는 요구를 발생시켰다고 가정하자, 버스 콘트롤러(30)는 주변 I/O 액세스 사이클(1)이 종료된 후 주변 I/O 액세스 사이클(2)이 시작하는 것을 대기한다. 그후, 주변 I/O 액세스 사이클(3 및 4)이 주변 I/O 에의 액세스 요구에 응답하여 연속적으로 시작된다.
그러므로, 2-비트 카운터와 16 개의 셀렉터를 부가하고, 외부 버스 사이클과 통합 주변 버스 사이클을 독립적으로 제어함으로서, 외부 메모리로부터의 명령 인출 사이클과 주변 I/O 메모리 엑세스 사이클을 모두 병렬로 시작할 수 있다.
이하, 본 발명의 제2실시예를, 도6을 참조하여, 설명한다.
본 발명의 제1실시예와 다른 점은 마이크로컴퓨터(11)가 버스 점유기능을 가지고 있다는 점이다. 여기서, 버스 점유는, 반전 HLDRQ 단자(68)로 부터의 버스 점유 요구(로우에서 동작)에 대하여, 마이크로컴퓨터(11)가 단자(65 및 67)로부터의 신호를 하이 임피던스 레벨로 세트시켜 외부 버스(95)를 개방시킨다는 것을 의미한다. 그동안, 반전 HLDAK 단자(69)는 "0"이 되어 버스 점유가 수신되었음을 외부로 알린다.
특히, 버스 콘트롤러(33)는 반전 HLDRQ 단자(68)로부터의 버스 점유 요구 신호(97)를 수신한 후, 반전 HLDAK 단자(69)로 버스 점유 수신 확인신호(98)를 출력한다. 또한, 외부 버스 상태 카운터(31)는 버스 점유 상태로 변화할 수 있다.
다른 구성들은 제1실시예와 동일하므로, 그 설명을 생략한다.
버스 점유에 대응하는 외부 버스 사이클의 상태 변화도를 나타낸 도 7(a) 및 외부 버스 사이클을 식별하기 위한 서비스 플래그의 상태도를 나타낸 도 7(b)를 참조하면, T1은 어드레스가 외부 버스로 출력되는 상태를 나타내며, T2는 데이터가 외부 버스로 출력되거나 외부 버스로부터 입력되는 상태를 나타내고, TH는 버스 점유 상태를 나타내며, T3는 외부 버스 사이클의 종료 상태 또는 외부 버스 사이클이 시작되지 않은 상태를 나타낸다.
또한, 통합 주변 버스 사이클의 상태 변화는 제1실시예에서 사용된 도4(a)및 도4(b)와 동일하다. 그러므로, PT1은 어드레스가 통합 주변 버스로 출력되는 상태이다. PT2는 데이터가 통합 주변 버스로 출력되거나 통합 주변 버스로부터 입력되는 상태이다. PT3는 통합 주변 버스 사이클의 종료 상태이다. 또한, 이들 상태도 마이크로컴퓨터(11)의 시스템 클럭과 동기하여 변화한다.
버스 콘트롤러(33)는 외부 버스 상태 카운터(31)에 대응하는, 서비스 플래그, SBRSVF(110), FETSVF(111), 및 MEMSVF(112)를 가진다. 서비스 플래는 외부 버스 사이클을 식별하기 위해 사용된다. 브랜치 사이클이 실행될 때, SBRSVF(110)는 1이 된다. 인출 사이클이 실행될 때, FETSVF(111)은 1이 된다. 외부 메모리 액세스 사이클이 실행될 때, MEMSVF(112)는 1이 된다. 외부 버스 사이클이 시작되지 않을 때, 모든 서비스 플래그(100 내지 112)는 0이 된다.
또한, 버스 콘트롤러(33)는 통합 주변 버스 상태 카운터(32)와 대응하는 서비스 플래그(IOMSVF; 113)를 갖는다. 이 서비스 플래그는 통합 주변 버스 사이클의 상태를 식별하기 위해 사용된다. 즉, 주변 I/O 액세스 사이클이 실행될 때, IOMSVF(113)은 1 이 된다. 주변 I/O 액세스 사이클이 시작되지 않을 때, IOMSVF(113)은 0이 된다.
주변 I/O 의 M1, M2, M3 및 M4 어드레스가 액세스되어 판독될 때의 타이밍 다이어그램을 나타낸 도8을 참조하면, 모든 버스 사이클이 버스 점유 상태로 대기하는 것은 아니다.
이하 이 동작을 설명한다.
먼저, 리셋 상태에서 외부 버스 상태와 통합 주변 버스 상태가 각각 T3 및 PT3 상태로 된다. CPU(20)로부터 요구가 발생될 때, 버스 콘트롤러(33)는 버스 사이클을 시작한다. 또 다른 버스 사이클이 동일한 버스에서 이미 시작된 경우, 이미 시작된 버스 사이클이 종료될 때까지, 새로운 버스 사이클의 시작을 대기한다.
버스 사이클이 CPU(20)로부터의 메모리 요구(93)에 대응하여 시작될 때, 버스 콘트롤러(33)는 메모리 요구(93)에 의해 지정된 어드레스에 따라서 외부 메모리 액세스와 주변 I/O 액세스를 식별한다.
외부 메모리 액세스의 경우, 서비스 플래그 MEMSVF(112)는 1로 세트되고, 외부 버스 상태는 T1상태로 변화한다. 주변 I/O 액세스의 경우, 서비스 플래그 IOMSVF(113)는 1로 세트되고, 통합 주변 버스 상태는 PT1상태로 변화한다. 외부 버스 상태의 T1에서 T2로의 변화 및 통합 주변 버스 상태의 PT1에서 PT2로의 변화는 무조건적으로 행해진다. 외부 버스 상태 사이클은 T2상태에서 대기 요구를 행한 후, 외부 버스 상태는 T2로 유지된다. 대기 요구가 없으면, 외부 버스 상태와 통합 주변 버스 상태는 T3와 PT3상태로 각각 변화한다.
CPU(20)으로부터의 요구(93)가 브랜치 요구일 때, 버스 콘트롤러(33)는 서비스 플래그 SBRSVR(110)를 1로 세트한다. CPU(20)으로부터 요구(93)가 없을 때에도, 버스 콘트롤러(30)는, 명령큐(50)의 버퍼가 모두 채워지지 않은 한, 외부 메모리(100)으로 부터의 명령을 인출하는 명령 인출 사이클을 시작한다. 이 경우, FETSVF(111)은 1로 세트되고, 외부 버스 상태는 T1상태로 변화한다. 그후의 변화는 전술한 변화와 동일하다.
주변 I/O의 M1, M2, M3 및 M4 어드레스가 액세스되어 판독될 때의 타이밍 다이어그램을 나타낸 도8을 참조하면, 모든 버스 사이클이 버스 점유 상태에서 대기하는 것은 아니다. 반전 HLDRQ 단자(68)가 명령 인출 사이클(1)의 T2 상태에서 "0"이 되기 때문에, 외부 버스 상태 카운터(31)는 명령 인출 사이클(1)의 완료 후에 TH상태로 변화한다.
반전 HLDAK 단자(69)는 "0"이 되어, 단자(65 및 67)로부터의 신호 출력은 하이 임피던스 레벨이 된다.
이제, CPU(20)가 명령 인출 사이클(1)의 T1 상태에서 주변 I/O에 액세스하는 요구를 발생시켰다고 가정하자. 버스 콘트롤러(33)는 서비스 플래그(IOMSVF; 113)를 1로 세트하고, 즉시 주변 I/O 액세스 사이클을 시시작한다.
그후, 서비스 플래그(IOMSVF; 113)가 주변 I/O 액세스에 응답하여 1을 유지하는 도안, 주변 I/O 액세스 사이클(2 내지 4)이 연속적으로 시작된다.
외부 버스 사이클과 통합 주변 버스 사이클이, 종래의 데이터 처리기에서와 같이, 하나의 버스 상태 카운터에 의해 카운트되면, 버스 점유 상태 동안에, 주변 I/O 액세스 사이클이 시작될 수 없다. 그러나, 2개의 상태 카운터, 즉, 외부 버스 상태 카운터(31)와 통합 주변 버스 상태 카운터(32)가 제2실시예에서와 같이 제공되는 경우에는, 명령 인출 사이클과 주변 I/O 메모리 액세스 사이클 양자를 버스 점유 동안에도 동시에 시작할 수 있다.
이상 설명한 바와 같이, 종래의 데이터 경로 회로 수단 대신에, 본 발명의 데이터 처리기는 메모리 어드레스 또는 기록 데이터 중에서 선택하고, 그 선택된 어드레스 또는 데이터를 다수의 주변 회로로 출력하는 선택 수단으로서 16개의 셀렉터가 또한 제공된 데이터 경로 회로 수단을 사용한다. 또한, 종래의 버스 콘트롤러 대신에, 본 발명의 데이터 처리기는, 상기 외부 버스의 버스 사이클의 상태의 수를 카운트하는 외부 버스 상태 카운터 및 상기 통합 주변 버스의 버스 사이클의 상태의 수를 카운트하는 통합 주변 버스 상태 카운터로서 2-비트 카운터를 가진 제2버스 콘트롤러를 사용한다. 또한, 본 발명의 데이터 처리기는 외부 버스 상태 카운터의 카운트 결과를 기준으로 외부 메모리의 명령 인출 사이클과 통합 주변 버스 상태 카운터의 카운트 결과를 기준으로 주변회로의 데이터 액세스 사이클 양자를 병렬로 시작하는 버스 사이클 병렬 제어 수단을 갖는다. 따라서, 주변 I/O의 메모리 액세스를, 외부 메모리로부터 명령을 인출하는 것을 인터럽트하지 않고, 행할 수 있다.
[표 1]
예를 들면, 내장된 데이터 처리기로서, 로드/저장 명령이 기준 명령인 RISC(감소된 명령 세트 컴퓨터)형을 기준으로 하여, CPU에 대해서 설명한다. 표 1에 나타낸 바와 같이, 메모리 액세스 명령은 모든 명령의 약 50%를 점유한다. 메모리 액세스 명령은 25%의 외부 메모리 액세스 명령과 25% 의 주변 I/O 액세스 명령으로 구성된다. 외부 메모리 액세스 명령은 12.5% 의 워드 액세스 명령과 12.5%의 하프 워드 액세스 명령으로 구성된다. 주변 I/O 액세스 명령은 25%의 하프 워드 또는 바이트 액세스 명령으로 구성된다.
외부 버스와 통합 주변 버스의 폭은 16비트로 선택된다. 평균 명령 길이는 2.5 바이트이고 모든 액세스 동작이 대기하는 것은 아니다.
[표 2]
표 2를 참조하면, 종래의 데이터 처리기는, 메모리 액세스 명령과 다른 명령이 3.5 클럭, 외부 메모리 워드 액세스가 1.6875클럭, 외부 메모리 하프 워드/바이트 액세스가 1.1325클럭, 및 주변 I/O 액세스가 2.625클럭을 요하기 때문에, 전체적으로 9.375클럭/명령이 필요하다.
본 발명의 데이터 처리기에서는, 주변 I/O 액세스가 명령 인출과 병렬로 실행할 수 있기 때문에, 주변 I/O 액세스 명령의 실행은 명령 인출에 필요한 단지 7.5 클럭만을 요하므로, 전체적으로 8.625 클럭/명령이 필요하다.
따라서, 시스템의 처리 능력을 하나의 명령에 요하는 클럭 수로 계산하면, 본 발명에 따른 최소한의 하드웨어를 부가시킴으로써, 시스템 처리 능력이 약 8% 증가되어, 실제 효과가 매우 높아지게 된다.
Claims (11)
- 데이터 처리기에 있어서, 중앙 처리 장치, 서로 독립적으로 제공된 제1 및 제2버스, 상기 중앙 처리 장치, 상기 제1버스 및 상기 제2버스에 접속된 데이터 경로 제어회로, 상기 제1버스에 접속되고 일련의 명령을 저장하는 메모리, 및 상기 제2버스와 상기 데이터 경로 제어회로에 접속된 제1주변회로를 포함하며, 상기 데이터 경로 제어회로는, 상기 제1버스를 사용하여 상기 메모리내에 저장된 명령을 메모리로부터 판독하고, 상기 데이터 경로 제어회로내에 인출하는 명령 사전인출 동작을 수행하는 동안, 상기 제 2버스를 사용하여 상기 중앙 처리 장치와 상기 제1주변 회로 간에 데이터 전송을 행하기 위해, 상기 중앙 처리 장치로부터의 요구에 응답하는 것을 특징으로 하는 데이터 처리기.
- 제1항에 있어서, 상기 데이터 경로 제어회로는 상기 메모리로부터 판독하여 인출된 명령을 일시적으로 저장하기 위한 명령큐를 포함하는 것을 특징으로 하는 데이터 처리기.
- 제1항에 있어서, 상기 데이터 경로 제어회로는, 제1카운터와 제2카운터를 각각 사용하여, 상기 제1버스와 상기 제2버스의 상태를 각각 검출하는 버스 콘트롤러를 더 구비하되, 상기 버스 콘트롤러는 상기 제1카운터가 인출 사이클 명령을 지시할 때 상기 명령 사전인출 동작을 행하며, 상기 제2카운터가 상기 입력/출력 사이클을 지시할 때 상기 데이터 전송을 행하는 것을 특징으로 하는 데이터 처리기.
- 제3항에 있어서, 상기 제2버스, 상기 중앙 처리 장치 및 상기 데이터 경로 제어 회로는 하나의 반도체 칩 상에서 형성되며, 상기 제1버스와 상기 메모리는 상기 하나의 반도체 칩의 외부에서 제공되는 것을 특징으로 하는 데이터 처리기.
- 제1항에 있어서, 상기 데이터 경로 제어회로는, 상기 메모리로부터 데이터를 인출하는 인출 어드레스를 저장하는 사전인출 포인터, 상기 중앙 처리 장치로부터 출력된 어드레스를 저장하는 제1래치, 상기 제1래치로부터 출력된 어드레스, 상기 사전인출 포인터로부터 출력된 어드레스, 및 상기 중앙 처리 장치로부터 출력된 기록 데이터 중에서 하나를 선택하는 제1셀렉터, 상기 제1셀렉터로부터 출력된 어드레스를 증분시키고 상기 증분된 어드레스를 상기 사전인출 포인터로 출력하는 증분기, 상기 제1셀렉터로부터 출력된 어드레스 및 기록 데이터를 저장하고 그 저장된 데이터를 상기 제1버스로 출력하는 제2래치, 상기 제1버스를 경유하여, 상기 메모리로부터 판독된 판독 데이터를 저장하는 제3래치, 상기 제3래치로부터 출력된 상기 판독 데이터 또는 상기 제1회로로부터의 상기 판독 데이터 중에서 하나를 선택하는 제2셀렉터, 상기 제2셀렉터로부터 출력된 데이터를 저장하고, 상기 데이터를 상기 중앙 처리 장치로 출력하는 제4래치, 상기 제1래치로부터 출력된 어드레스 또는 상기 중앙 처리 장치로부터 출력된 기록 데이터 중에서 하나를 선택하는 제3셀렉터, 및 상기 제3셀렉터로부터 출력된 어드레스 및 기록 데이터를 저장하고, 그 저장된 데이터를 상기 제2버스로 출력하는 제5래치를 구비하고, 상기 인출 사이클과 상기 입력/출력 사이클 양자가 요구될 때, 상기 제1셀렉터는, 상기 인출 어드레스를 만들기 위해, 상기 사전인출 포인터를 선택하며, 상기 제3셀렉터는 상기 제1회로에 대한 상기 어드레스와 데이터를 선택하는 것을 병행함을 특징으로 하는 데이터 처리기.
- 중앙 처리 장치, 제1회로에 접속된 제1버스, 상기 제1버스에 독립적으로 제공되고, 제2회로에 접속된 제2버스, 및 상기 중앙 처리 장치에 따라서, 제1카운터와 제2카운터 각각에 의해, 상기 제1 및 제2버스를 독립적으로 제어하는 버스 콘트롤러를 구비하고, 상기 중앙 처리 장치가 상기 제1카운터를 세트시킬 때, 상기 제1회로가 제1사이클로 상기 제1버스를 점유하고, 상기 중앙 처리 장치가 상기 제2카운터를 세트시킬 때, 상기 제2회로가 제2사이클로 상기 제2버스를 점유하며, 상기 제2사이클은 상기 제1사이클과 병렬로 실행되는 것을 특징으로 하는 데이터 처리기.
- 중앙 처리 장치가 인출 사이클 시에 외부 버스를 경유하여 상기 외부 메모리로부터의 명령을 인출하는 동안, 통합 주변 버스 사이클 시에 통합 주변 버스를 경유하여 입력/출력 회로를 동작시키는 통합 마이크로컴퓨터를 구비한 데이터 처리기에 있어서, 상기 인출 사이클이 요구될 때, 상기 중앙 처리 장치로부터 어드레스 및 데이터를 수신하고, 중앙 처리 장치로부터 어드레스 및 기록 데이터를 상기 외부 메모리로 출력하는 제 1 데이터 경로수단, 상기 통합 주변 버스 사이클이 요구될 때, 상기 중앙 처리 장치로부터 상기 어드레스 및 데이터를 수신하고, 상기 어드레스 및 데이터를 상기 주변 입력/출력 회로로 출력하는 상기 제1데이터 경로 수단이 독립적으로 제공된 제2데이터 경로 수단, 및 상기 인출 사이클의 상태의 수를 카운트하는 외부 버스 상태 카운터 및 상기 통합 주변 버스 사이클의 상태 수를 카운트하는 통합 주변 버스 상태 카운터를 갖는 버스 콘트롤러를 구비하고, 상기 버스 콘트롤러는 상기 외부 버스 상태 카운터의 카운터 결과를 기준으로 한 상기 외부 메모리의 명령 인출 사이클, 및 상기 통합 주변 버스 상태 카운터의 카운트 결과를 기준으로 한 상기 주변 회로의 데이터 액세스 사이클 양자를 병렬로 시작하는 것을 특징으로 하는 데이터 처리기.
- 제7항에 있어서, 상기 제1데이터 경로 수단은, 상기 외부 메모리로부터 데이터를 인출하여 인출 어드레스를 저장하는 사전인출 포인터, 상기 중앙 처리 장치로부터 출력된 어드레스를 저장하는 제1래치, 상기 제1래치, 상기 사전인출 포인터로부터 출력된 어드레스, 및 상기 중앙 처리 장치로부터 출력된 기록 데이터 중에서 하나를 선택하는 제1셀렉터, 상기 제1셀렉터로부터 출력된 어드레스를 증분시키고 상기 증분된 어드레스를 상기 사전인출 포인터로 출력하는 증분기, 및 상기 제1셀렉터로부터 출력된 어드레스 및 기록 데이터를 저장하고, 상기 어드레스 및 기록 데이터를 상기 외부 버스로 출력하는 제2래치를 구비하는 것을 특징으로 하는 데이터 처리기.
- 제8항에 있어서, 상기 제2데이터 경로 수단은, 상기 제1래치로부터 출력된 상기 어드레스 또는 상기 중앙 처리 장치로 부터 출력된 상기 기록 데이터 중에서 하나를 선택하는 제2셀렉터, 및 상기 제2셀렉터로부터 출력된 상기 어드레스 및 기록 데이터를 저장하고, 상기 어드레스 및 기록 데이터를 상기 통합 주변 버스로 출력하는 제3래치를 구비하고, 상기 인출 사이클 및 상기 통합 주변 버스 사이클 양자가 요구될 때, 상기 제 1셀렉터는 상기 사전인출 포인터를 선택하고, 상기 제2셀렉터는 주변 입력/출력 회로에 대한 상기 어드레스 및 기록 데이터를 선택하는 것을 병행함을 특징으로 하는 데이터 처리기.
- 제7항에 있어서, 상기 통합 주변 버스, 상기 중앙 처리 장치, 상기 제1데이터 경로 수단, 상기 제2데이터 경로, 상기 버스 콘트롤러 및 상기 입력/출력 회로는 동일 칩 내에 형성되며, 상기 외부 버스와 상기 외부 메모리는 상기 칩 외부에 형성되는 것을 특징으로 하는 데이터 처리기.
- 어드레스 단자에서 제1어드레스 정보를 발생시키는 동안 제1명령을 실행하여 제1액세스 요구를 발생시키고 상기 어드레스 단자에서 제2어드레스 정보를 발생시키는 동안 제2명령을 실행하여 제2액세스 요구를 발생시키는, 중앙 처리 장치, 사전인출될 명령에 대한 사전인출 어드레스 정보를 발생시키는 사전인출 명령 장치, 메모리에 결합된 제1버스, 상기 중앙 처리 장치 의 상기 어드레스 단자에 접속된 제1입력 노드를 가진 셀렉터, 상기 사전 인출 어드레스 정보를 수신하기 위해 접속된 제2노드, 및 상기 제1버스에 접속된 출력 노드를 포함하며, 상기 셀렉터는 상기 제1액세스 요구가 발생할 때 상기 제1입력 노드를 선택하여 상기 제1어드레스 정보를 상기 제1버스로 출력시키고, 상기 제1액세스 요구가 발생되지 않을 때 제2노드를 선택하여 상기 사전인출 어드레스 정보를 상기 제1버스로 출력시키도록 제어되며, 제2버스는 입력/출력 장치에 접속되며, 신호 경로 제어 회로는 상기 중앙 처리 장치의 상기 어드레스 단자와 상기 제2버스 사이에 접속되고, 상기 셀렉터가 상기 사전인출 어드레스 정보를 상기 제1버스로 출력시키는 동안 상기 제2액세스 요구에 응답하여 상기 제2어드레스 정보를 상기 제2버스로 전송하는 어드레스 전송 경로를 형성하는 것을 특징으로 하는 데이터 처리 장치.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP95-177241 | 1995-07-13 | ||
JP7177241A JP2976850B2 (ja) | 1995-07-13 | 1995-07-13 | データ処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR970007620A KR970007620A (ko) | 1997-02-21 |
KR100249536B1 true KR100249536B1 (ko) | 2000-03-15 |
Family
ID=16027625
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019960028308A KR100249536B1 (ko) | 1995-07-13 | 1996-07-13 | 다수의 버스를 서로 독립적으로 제어하기 위한 버스콘트롤러를 가진 데이터 처리기 |
Country Status (4)
Country | Link |
---|---|
US (1) | US5889966A (ko) |
EP (1) | EP0753818A3 (ko) |
JP (1) | JP2976850B2 (ko) |
KR (1) | KR100249536B1 (ko) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6347368B1 (en) * | 1997-12-30 | 2002-02-12 | Jerry David Harthcock | Microcomputing device for exchanging data while executing an application |
US6182112B1 (en) * | 1998-06-12 | 2001-01-30 | Unisys Corporation | Method of and apparatus for bandwidth control of transfers via a bi-directional interface |
US8031865B2 (en) * | 2004-01-08 | 2011-10-04 | Encryption Solutions, Inc. | Multiple level security system and method for encrypting data within documents |
US7752453B2 (en) | 2004-01-08 | 2010-07-06 | Encryption Solutions, Inc. | Method of encrypting and transmitting data and system for transmitting encrypted data |
US7526643B2 (en) * | 2004-01-08 | 2009-04-28 | Encryption Solutions, Inc. | System for transmitting encrypted data |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4439839A (en) * | 1981-08-24 | 1984-03-27 | International Telephone And Telegraph Corporation | Dynamically programmable processing element |
JPH0738187B2 (ja) * | 1984-03-23 | 1995-04-26 | 株式会社日立製作所 | Lsiに構成されたマイクロコンピュータ |
JPS63121934A (ja) * | 1986-11-10 | 1988-05-26 | Oki Electric Ind Co Ltd | 評価用ワンチツプマイクロコンピユ−タ |
JPH0711793B2 (ja) * | 1989-07-13 | 1995-02-08 | 株式会社東芝 | マイクロプロセッサ |
US5428746A (en) * | 1992-03-23 | 1995-06-27 | Zilog, Inc. | Integrated microprocessor unit generating separate memory and input-output device control signals |
JPH0646395A (ja) * | 1992-07-27 | 1994-02-18 | Hitachi Ltd | データ圧縮装置 |
JP3226055B2 (ja) * | 1992-09-16 | 2001-11-05 | 松下電器産業株式会社 | 情報処理装置 |
JPH06332844A (ja) * | 1993-05-24 | 1994-12-02 | Sharp Corp | マイクロコンピュータ |
JPH07152721A (ja) * | 1993-11-29 | 1995-06-16 | Mitsubishi Electric Corp | マイクロコンピュータ |
EP0692764B1 (en) * | 1994-06-17 | 2000-08-09 | Advanced Micro Devices, Inc. | Memory throttle for PCI master |
US5644756A (en) * | 1995-04-07 | 1997-07-01 | Motorola, Inc. | Integrated circuit data processor with selectable routing of data accesses |
WO1996037854A2 (en) * | 1995-05-26 | 1996-11-28 | National Semiconductor Corporation | Integrated circuit with multiple functions sharing multiple internal signal buses according to distributed bus access and control arbitration |
DE69619623T2 (de) * | 1995-05-26 | 2002-11-07 | National Semiconductor Corp., Santa Clara | Integrierte primär- und sekundärbussteuereinheit mit einer reduzierten pinanzahl |
-
1995
- 1995-07-13 JP JP7177241A patent/JP2976850B2/ja not_active Expired - Lifetime
-
1996
- 1996-07-11 EP EP96111213A patent/EP0753818A3/en not_active Withdrawn
- 1996-07-12 US US08/679,128 patent/US5889966A/en not_active Expired - Lifetime
- 1996-07-13 KR KR1019960028308A patent/KR100249536B1/ko not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
EP0753818A3 (en) | 1999-02-03 |
JPH0926932A (ja) | 1997-01-28 |
JP2976850B2 (ja) | 1999-11-10 |
US5889966A (en) | 1999-03-30 |
EP0753818A2 (en) | 1997-01-15 |
KR970007620A (ko) | 1997-02-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5297242A (en) | DMA controller performing data transfer by 2-bus cycle transfer manner | |
KR920006275B1 (ko) | 데이타 처리 장치 | |
US5392442A (en) | Data-driven processor having an output unit for providing only operand data in a predetermined order | |
EP0212636A2 (en) | Bus state control circuit | |
JPS6235949A (ja) | メモリ−装置 | |
US6507899B1 (en) | Interface for a memory unit | |
US4747045A (en) | Information processing apparatus having an instruction prefetch circuit | |
JPS6217876Y2 (ko) | ||
EP0223150B1 (en) | Information processing apparatus | |
KR100249536B1 (ko) | 다수의 버스를 서로 독립적으로 제어하기 위한 버스콘트롤러를 가진 데이터 처리기 | |
EP0338564B1 (en) | Microprogram branching method and microsequencer employing the method | |
KR920003180B1 (ko) | 바이패스(bypass)회로를 갖는 데이타 처리장치 | |
EP0361497B1 (en) | Program/data memory employed in microcomputer system | |
US5539900A (en) | Information processing system | |
EP0385136A2 (en) | Microprocessor cooperating with a coprocessor | |
US5677859A (en) | Central processing unit and an arithmetic operation processing unit | |
US5050076A (en) | Prefetching queue control system | |
EP0448317A2 (en) | Information processing apparatus for variable length data | |
JPH04104350A (ja) | マイクロプロセッサ | |
JPS63163634A (ja) | 命令フエツチ方式 | |
JP3033597B2 (ja) | プライオリティーエンコーダ及びこれを用いた半導体集積回路 | |
JP2635863B2 (ja) | 中央処理装置 | |
EP0360583B1 (en) | A stack system | |
JPS6014435B2 (ja) | 記憶装置 | |
EP0097499A2 (en) | Access request control apparatus for a data processing system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20021220 Year of fee payment: 4 |
|
LAPS | Lapse due to unpaid annual fee |