KR100255551B1 - A method and an apparatus for enabling a processor to access an external component through a private bus or a shared bus - Google Patents
A method and an apparatus for enabling a processor to access an external component through a private bus or a shared bus Download PDFInfo
- Publication number
- KR100255551B1 KR100255551B1 KR1019970703837A KR19970703837A KR100255551B1 KR 100255551 B1 KR100255551 B1 KR 100255551B1 KR 1019970703837 A KR1019970703837 A KR 1019970703837A KR 19970703837 A KR19970703837 A KR 19970703837A KR 100255551 B1 KR100255551 B1 KR 100255551B1
- Authority
- KR
- South Korea
- Prior art keywords
- bus
- external component
- external
- access
- processor
- Prior art date
Links
Images
Classifications
-
- 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
-
- 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/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1684—Details of memory controller using multiple buses
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multi Processors (AREA)
- Bus Control (AREA)
Abstract
프로세서(156)가 전용 버스(146) 또는 공유 버스(148)를 통해 외부 구성요소(158a-n)를 액세스할 수 있도록 해 주는 방법 및 장치가 공개된다. 본 발명의 일실시예는 외부 메모리 액세스 유닛(144)을 포함하고 있는 외부 메모리 액세스 장치이다. 이 외부 메모리 액세스 유닛(144)은 외부 메모리 액세스 유닛 버스(142)를 통해 프로세서(156)에 접속되어 있다. 또한, 외부 메모리 액세스 유닛(144)은 전용 버스(146)를 통해 외부 메모리(158a-n)에 접속되어 있다. 상기 외부 메모리 액세스 유닛(144)은 또한 공유 버스(148)를 통해 외부 메모리(158a-n)에 접속되어 있고, 이 버스는 외부 구성요소, 즉 (150), (152) 또는 (154)중 하나의 구성요소를 외부 메모리(158a-n)에 접속한다.Methods and apparatus are disclosed that enable processor 156 to access external components 158a-n via dedicated bus 146 or shared bus 148. One embodiment of the invention is an external memory access device that includes an external memory access unit 144. This external memory access unit 144 is connected to the processor 156 via an external memory access unit bus 142. The external memory access unit 144 is also connected to the external memories 158a-n via the dedicated bus 146. The external memory access unit 144 is also connected to the external memory 158a-n via a shared bus 148, which is one of the external components, ie 150, 152 or 154. Is connected to the external memories 158a-n.
Description
최근에, 프로세서(예컨대, RISC 형 구조를 사용하는 디지탈 신호 프로세서)의 수가 증가함에 따라, 프로세서의 마이크로코드를 간단화 또는 제거함으로써 상기 프로세서의 명령 실행 속도가 증가하고 있다. 예컨대, 이 간단화/제거에 의해 상기 프로세서의 명령 실행 속도를 증가시키는 한 가지 방법으로는 명령 디코딩 및 실행 시간을 줄이는 방법을 들 수 있다. 실제로, 현재 RISC 형 구조를 사용하고 있는 다수의 프로세서는 단지 하나의 클럭 사이클내에서 하나의 명령 워드를 디코딩 및 실행할 수 있다.Recently, as the number of processors (eg, digital signal processors using RISC type structures) increases, the instruction execution speed of the processor is increased by simplifying or eliminating the microcode of the processor. For example, one way to increase the instruction execution speed of the processor by this simplification / removal is to decode instruction and reduce execution time. Indeed, many processors currently using RISC type architectures can decode and execute one instruction word in only one clock cycle.
이 감소된 명령 디코딩 및 실행 시간을 이용하기 위해, 그리고 프로세서의 명령 실행 속도를 더 증가시키기 위해, 상기 데이터 액세스 시간(즉, 프로세서 요구 데이터 워드를 상기 프로세서에 제공하는데 필요한 시간)을 줄이는 방법이 필요하다. 또한, 상기 데이터 액세스 시간을 줄이는 방법은 실시간으로 멀티미디어 데이터의 최대량을 수신하는데 디지탈 신호 프로세서를 필요로 하는 디지탈 신호 프로세싱 응용에서 장기간 사용되어 왔다.In order to take advantage of this reduced instruction decoding and execution time, and to further increase the processor's instruction execution speed, there is a need for a method of reducing the data access time (ie, the time required to provide a processor required data word to the processor). Do. In addition, the method of reducing data access time has long been used in digital signal processing applications which require a digital signal processor to receive the maximum amount of multimedia data in real time.
도 1에는 종래의 한가지 데이터 액세스 방법이 제시되어 있다. 이 도면에 도시되어 있는 바와같이, 이 종래 방법은 프로세서(102)내에 내부 데이터 메모리 뱅크(100)를 배치함으로써 데이터 액세스 시간을 줄이고 있다. 이때, 산술 논리 연산장치(즉, ALU)(104)는 (데이터 워드를 저장하는) 특정 메모리 셀의 주소를 상기 내부 데이터 메모리 뱅크에 공급함으로써 수 클럭 사이클에서 데이터 워드를 액세스할 수 있다. 또한, 상기 내부 데이터 메모리 뱅크는 이들 주소를 디코딩하고, (공급된 주소에 있는) 요구된 데이터 워드를 적절한 비트 라인과 센스 증폭기를 구동함으로써 상기 ALU에 제공한다. 하지만, 프로세서 다이(die)의 공간이 제한되어 있으므로, 그리고 메모리 셀 어레이가 비교적 넓은 다이 공간을 점유하고 있으므로, 제한된 양의 데이터만이 내부에 저장될 수 있으며, 이에따라 이 종래 데이터 액세스 방법하에서 상기 ALU가 액세스할 수 있는 데이터의 양이 제한되게 된다. 따라서, 이 종래 데이터 액세스 방법은 데이터 액세스 시간을 충분히 줄여 주지 않는데, 이는 이 방법으로는 상기 ALU가 제한된 양의 데이터만을 액세스할 수 있기 때문이다. 또한, 이 종래 내부 데이터 액세스 방법은 가장 짧은 데이터 액세스 시간을 제공해 주지 않는데, 이는 때때로 ALU(104)는 다른 구성요소가 상기 데이터 메모리를 액세스할 수 있도록 해 주기 위해 자신의 데이터 액세스를 종료해야 하기 때문이다.Figure 1 shows one conventional data access method. As shown in this figure, this conventional method reduces data access time by disposing an internal
이와같이, 종래 내부 데이터 기억 방법은 데이터 액세스 시간을 충분히 줄여 주지 않으므로, 여러 가지 종래 외부 데이터 액세스 방법이 개발되어 왔다. 도 2에는 종래 외부 데이터 액세스 방법의 일예가 제시되어 있다. 이 도면에 도시되어 있는 바와같이, 이 종래 방법은 프로그램 메모리의 잉여 메모리에 데이터를 저장한다. 하지만, 이 종래 데이터 액세스 방법도 또한 상기 데이터 액세스 시간를 충분히 줄여 주지 않는데, 이는 명령과 데이터를 프로세서(112)와 주고 받는데에 하나의 명령 버스(110)를 사용하고 있기 때문이다. 특히, 이 종래 방법은 데이터 워드를 액세스하는 데에 3개의 전체 클럭 사이클을 필요로 하며, 이때 (1) 제1클럭 사이클동안에, 프로세서(112)는 명령 워드를 수신하고, (2) 제2클럭 사이클 동안에 프로세서(112)는 상기 명령을 디코딩하며, (3) 제3클럭 사이클 동안에 프로세서(112)는 데이터 주소를 발생하고 데이터를 판독한다. 또한, 이 종래 방법도 데이터 액세스 시간을 충분히 줄여 주지 않는데, 이는 프로세서(112)는 종종 상기 컴퓨터의 다른 구성요소가 데이터 메모리를 액세스하는데 명령 버스를 이용할 수 있도록 해 주기 위해 자신의 데이터 액세스를 종료해야 하기 때문이다. 예컨대, 때때로 상기 프로세서는 외부 시스템 메모리가 상기 데이터 메모리에 추가 정보를 저장할 수 있도록 해 주기 위해 자신의 데이터 액세스를 종료해야 한다.As such, since the conventional internal data storage method does not sufficiently reduce the data access time, various conventional external data access methods have been developed. 2 shows an example of a conventional external data access method. As shown in this figure, this conventional method stores data in a surplus memory of the program memory. However, this conventional data access method also does not sufficiently reduce the data access time, since one
도 3에는 외부 데이터를 액세스하는 제2종래 방법이 제시되어 있다. 이 종래 방법은 프로세서(124)를 별개의 명령 메모리(126)와 데이터 메모리(128)에 각각 접속하는데 별개의 명령 버스(120)와 데이터 버스(122)를 사용하고 있다. 하지만, 여러가지 이유로 인해, 이 종래 외부 데이터 액세스 방법도 또한 가장 짧은 데이터 액세스 시간을 제공해 주지 않는다. 첫째로, 이 종래 외부 데이터 액세스 방법은 가장 짧은 데이터 액세스 시간을 제공해 주지 않는데, 이는 (1) 데이터 메모리 셀 어레이(128)측에 각각의 개별적인 데이터 워드에 대한 별개의 데이터 요구를 행할 것을, 그리고 (2) 상기 데이터 메모리 셀 어레이가 상기 요구된 데이터를 공급할 때까지 대기할 것을, 상기 프로세서에게 요구하기 때문이다. 둘째로, 액세스 시간에 악영향이 미치는데, 이는 데이터 메모리(128)와 통신하기 위해, 프로세서(124)는 자신측에 접속되어 있는 다수의 구성요소로 인해 큰 용량성의 데이터 버스를 구동해야 하기 때문이다.3 shows a second conventional method of accessing external data. This conventional method uses a
셋째로, 도 3의 종래 외부 메모리 액세스 방법은 액세스 시간을 충분히 줄여 주지 않는데, 이는 때때로 상기 프로세서는, 상기 컴퓨터의 다른 구성요소가 상기 데이터 메모리를 액세스하는데 상기 데이터 버스를 사용할 수 있도록 해 주기 위해 자신의 데이터 액세스를 종료해야 하기 때문이다. 예컨대, 상기 프로세서는, 때때로 외부 시스템 메모리가 상기 데이터 메모리를 액세스할 수 있도록 해 주기 위해 자신의 데이터 액세스를 종료해야 한다. 이 종래 데이터 액세스 방법은 외부 시스템 메모리가 데이터 메모리 뱅크(128)에 추가 데이터를 저장할 수 있도록 해 주기 위해 자신의 데이터 액세스를 종료해야 하는 회수를 줄임으로써 상기 데이터 액세스 시간을 줄이기 위해, 상기 데이터 메모리 셀 어레이의 크기를 증가시킨다. 하지만, 이 종래 해결책은 최적의 해결책으로 볼 수 없는데, 이는 상기 데이터 메모리 셀의 크기가 상기 컴퓨터 시스템의 비용을 증가시키기 때문이다. 또한, 이 종래 해결책은 설계 제약과 공간 제한으로 인해 상기 데이터 메모리 셀 어레이의 크기가 커질 수 없을 때에는 사용될 수 없다.Third, the conventional external memory access method of FIG. 3 does not sufficiently reduce the access time, which is sometimes the processor itself to allow other components of the computer to use the data bus to access the data memory. This is because the data access must be terminated. For example, the processor must sometimes terminate its data access to allow external system memory to access the data memory. This conventional data access method reduces the data access time by reducing the number of times that an external system memory must terminate its data access in order to allow additional data to be stored in the
본 발명은 컴퓨터 시스템 분야에 관한 것으로, 특히 프로세서가 전용 버스 또는 공유 버스를 통해 외부 구성요소를 액세스할 수 있도록 해 주는 방법 및 장치에 관한 것이다.TECHNICAL FIELD The present invention relates to the field of computer systems, and more particularly, to a method and apparatus for enabling a processor to access external components via a dedicated bus or a shared bus.
도 1은 데이터를 내부에 저장함으로써 데이터 액세스 시간을 줄이는 한가지 종래 데이터 액세스 방법을 제시한 도면.1 illustrates one conventional data access method that reduces data access time by storing data therein.
도 2는 프로그램 메모리의 잉여 메모리에 데이터를 저장하는 한가지 종래 외부 데이터 액세스 방법을 제시한 도면.Figure 2 illustrates one conventional external data access method for storing data in redundant memory of a program memory.
도 3은 외부 데이터 메모리에 데이터를 저장하는 다른 종래 외부 데이터 액세스 방법을 제시한 도면.3 illustrates another conventional external data access method for storing data in an external data memory.
도 4는 본 발명의 외부 메모리 액세스 장치의 일실시예를 포함하고 있는 컴퓨터 시스템 구조를 제시한 도면.4 illustrates a computer system structure including one embodiment of an external memory access device of the present invention.
도 5는 도 4의 외부 메모리 액세스 장치에 사용된 외부 메모리 액세스 유닛 버스, 외부 메모리 액세스 유닛, 전용 버스, 및 공유 버스의 일실시예를 제시한 도면.FIG. 5 illustrates one embodiment of an external memory access unit bus, an external memory access unit, a dedicated bus, and a shared bus used in the external memory access device of FIG.
도 6은 도 5의 외부 메모리 액세스 유닛에 사용된 전용 및 공유 버스 인터페이스의 일실시예를 제시한 도면.FIG. 6 illustrates one embodiment of a dedicated and shared bus interface used in the external memory access unit of FIG. 5; FIG.
도 7은 도 6의 공유 및 전용 버스 인터페이스의 블록 판독 액세스 동작에 대한 타이밍도의 일실시예를 제시한 도면.7 illustrates one embodiment of a timing diagram for a block read access operation of the shared and dedicated bus interface of FIG.
도 8은 도 6의 공유 및 전용 버스 인터페이스의 블록 기록 액세스 동작에 대한 타이밍도의 일실시예를 제시한 도면.8 illustrates one embodiment of a timing diagram for a block write access operation of the shared and dedicated bus interface of FIG.
도 9는 도 5의 외부 메모리 액세스 유닛에 사용된 상태 머신 블록의 일실시예를 제시한 도면.9 illustrates one embodiment of a state machine block used in the external memory access unit of FIG.
도 10은 도 9의 상태 머신 블록의 전용 버스 상태 머신에 대한 상태도의 일실시예를 제시한 도면.10 illustrates one embodiment of a state diagram for a dedicated bus state machine of the state machine block of FIG.
도 11은 전용 버스를 통한 블록 판독 액세스 동안에, 도 9의 상태 머신 블록의 상태 머신 출력 발생기의 일실시예의 동작에 대한 타이밍도.11 is a timing diagram for operation of one embodiment of a state machine output generator of the state machine block of FIG. 9 during a block read access over a dedicated bus.
도 12은 전용 버스를 통한 블록 기록 액세스 동안에, 도 9의 상태 머신 블록의 상태 머신 출력 발생기의 일실시예의 동작에 대한 타이밍도.12 is a timing diagram for operation of one embodiment of a state machine output generator of the state machine block of FIG. 9 during a block write access via a dedicated bus.
도 13은 전용 버스를 통한 기록 액세스 후의 판독 동안에, 도 9의 상태 머신 블록의 상태 머신 출력 발생기의 일실시예의 동작에 대한 타이밍도.FIG. 13 is a timing diagram for operation of one embodiment of a state machine output generator of the state machine block of FIG. 9 during a read after write access via a dedicated bus. FIG.
도 14는 도 9의 상태 머신 블록의 공유 버스 상태 머신에 대한 상태도의 일실시예를 제시한 도면.14 illustrates one embodiment of a state diagram for the shared bus state machine of the state machine block of FIG.
도 15은 공유 버스를 통한 블록 판독 액세스 동안에, 도 9의 상태 머신 블록의 상태 머신 출력 발생기 유닛의 일실시예의 동작에 대한 타이밍도.FIG. 15 is a timing diagram for operation of one embodiment of a state machine output generator unit of the state machine block of FIG. 9 during a block read access over a shared bus. FIG.
도 16은 공유 버스를 통한 블록 기록 액세스 동안에, 도 9의 상태 머신 블록의 상태 머신 출력 발생기 유닛의 일실시예의 동작에 대한 타이밍도.FIG. 16 is a timing diagram for operation of one embodiment of a state machine output generator unit of the state machine block of FIG. 9 during a block write access via the shared bus. FIG.
도 17은 공유 버스를 통한 기록 액세스 후의 판독 동안에, 도 9의 상태 머신 블록의 상태 머신 출력 발생기 유닛의 일실시예의 동작에 대한 타이밍도.FIG. 17 is a timing diagram of the operation of one embodiment of a state machine output generator unit of the state machine block of FIG. 9 during a read after a write access via the shared bus.
도 18은 공유 버스 승인 신호가 제거되고 프로세서가 그 공유 버스를 로킹하지 않은 때에 공유 버스를 통한 기록 액세스 동안에, 도 9의 상태 머신 블록의 상태 머신 출력 발생기 유닛의 일실시예의 동작에 대한 타이밍도.18 is a timing diagram of the operation of one embodiment of the state machine output generator unit of the state machine block of FIG. 9 during a write access through the shared bus when the shared bus grant signal is removed and the processor is not locking its shared bus.
발명의 상세한 설명Detailed description of the invention
이하에서는 본 발명의 철저한 이해를 제공하기 위해 많은 상세 내용이 설명된다. 하지만, 본 발명을 실시하는데에 있어서 당업자에게는 이들 특정한 상세 내용은 필요하지 않음은 물론이다. 예컨대, 설명을 위해, 이하의 설명은 외부 데이터 메모리를 액세스하기 위한 방법 및 장치를 포함하고 있지만, 본 발명은 당업자에게는 어떤 외부 메모리(예컨대, 명령 메모리) 또는 기타 다른 어떤 구성요소를 액세스하는데 프로세서에 의해 사용될 수 있음은 물론이다. 다른 예에서, 불필요한 상세 내용에 의해 본 발명이 불명료해지지 않도록 잘 알려진 전기적 구조와 회로는 블록도 형태로 도시되어 있다.In the following, numerous details are set forth in order to provide a thorough understanding of the present invention. However, of course, these specific details are not required by those skilled in the art in practicing the present invention. For example, for purposes of explanation, the following description includes methods and apparatus for accessing external data memory, but the present invention is directed to a processor skilled in the art to access any external memory (eg, instruction memory) or any other component. Of course it can be used by. In other instances, well-known electrical structures and circuits are shown in block diagram form in order not to obscure the present invention by unnecessary details.
발명의 개요Summary of the Invention
본 발명은, 프로세서가 전용 버스 또는 공유 버스를 통해 외부 구성요소를 액세스할 수 있도록 해 주는 방법 및 장치를 제공한다. 본 발명의 일실시예는 외부 메모리 액세스 유닛을 포함하고 있는 외부 메모리 액세스 장치이다. 이 외부 메모리 액세스 유닛은 외부 메모리 액세스 유닛 버스를 통해 상기 프로세서에 접속되어 있다. 또한, 상기 외부 메모리 액세스 유닛은 전용 버스를 통해 외부 메모리에 접속되어 있다. 상기 외부 메모리 액세스 유닛은 또한 공유 버스를 통해 외부 메모리에 접속되어 있고, 이 버스는 또한 외부 구성요소를 상기 외부 메모리에 접속시킨다.The present invention provides a method and apparatus that allows a processor to access external components via a dedicated bus or shared bus. One embodiment of the present invention is an external memory access device including an external memory access unit. This external memory access unit is connected to the processor via an external memory access unit bus. The external memory access unit is also connected to an external memory via a dedicated bus. The external memory access unit is also connected to an external memory via a shared bus, which also connects external components to the external memory.
본 발명의 목적 및 이점은 이하의 상세한 설명과 첨부 도면을 검토한 후에 보다 쉽게 당업자에게 명백해지게 된다.The objects and advantages of the present invention will become more readily apparent to those skilled in the art after reviewing the following detailed description and the accompanying drawings.
1. 외부 메모리 액세스 장치1. External memory access device
본 발명은, 프로세서가 전용 버스 또는 공유 버스를 통해 외부 구성요소를 액세스할 수 있도록 해 주는 방법 및 장치를 제공한다. 도 4에는 본 발명의 외부 구성요소 액세스 장치의 일실시예를 포함하고 있는 컴퓨터 시스템 구조가 제시되어 있다. 도 4에 설명된 본 발명의 실시예에서, 상기 외부 구성요소 액세스 장치는, 프로세서(156)가 N개의 데이터 메모리 뱅크(158)를 액세스할 수 있도록 해 주는 외부 메모리 액세스 장치이다. 하지만, 본 발명의 외부 구성요소 액세스 장치는 어떤 개수의 다른 외부 메모리 뱅크(예컨대, N 개의 명령 메모리 뱅크) 또는 어떤 개수의 다른 외부 구성요소를 상기 프로세서가 액세스할 수 있도록 해 준다.The present invention provides a method and apparatus that allows a processor to access external components via a dedicated bus or shared bus. 4 shows a computer system structure including one embodiment of an external component access device of the present invention. In the embodiment of the present invention described in FIG. 4, the external component access device is an external memory access device that allows the
도 4에 도시되어 있는 바와같이, 외부 메모리 액세스 장치(140)는 외부 메모리 액세스 유닛 버스(142), 외부 메모리 액세스 유닛(EMAU)(144), 전용 버스(146), 공유 버스(148), 공유 버스 중재기(15), 직접 메모리 액세스 유닛(152), 데이터 메모리 뱅크 제어기(154), 및 N 개의 데이터 메모리 뱅크(158)를 포함하고 있다. 프로세서(156)는 그 데이터 액세스 시간을 최소화하기 위해 외부 메모리 액세스 장치(140)를 사용한다. 특히, 프로세서(156)는 제한된 내부 데이터 기억 용량을 가지고 있고 그리고 데이터의 액세스를 위한 제한된 주소지정 능력을 가지고 있는 통상적인 프로세서이다. 본 발명의 일실시예에서, 프로세서(156)는 RISC 형 구조를 가지고 있는 디지탈 신호 프로세서(DSP)이며, 이에따라 상기 DSP는 단지 하나의 클럭 사이클내에서 명령 워드를 디코딩 및 실행할 수 있다. 따라서, 이 감소된 명령 디코드 및 실행 시간을 이용하기 위해, 그리고 상기 DSP의 명령 실행 속도를 더 증가시키기 위해, DSP(156)는 외부 메모리 액세스 장치(140)를 사용하여 그 데이터 액세스 시간을 최소화한다. 또한, 프로그램 명령은 프로그램 RAM(160)에 외부적으로 저장되고, 데이터 워드는 데이터 메모리 뱅크(158)에 외부적으로 저장된다. 프로세서(156)는 프로그램 RAM(160)을 액세스하는데 프로그램 버스(162)를 사용하고, N개의 데이터 메모리 뱅크(158)를 액세스하는데 외부 메모리 액세스 장치(140)를 사용한다.As shown in FIG. 4, the external
프로세서(156)는 또한 공유 버스(148)에 접속되어 있는 수많은 외부 구성요소를 액세스하는데 EMAU 버스(142), EMAU(144), 및 공유 버스(148)를 사용한다. 상기 공유 버스에 접속되어 있는 이들 외부 구성요소의 일부 예로는 외부 프로세서, 외부 시스템 메모리, 또는 외부 직렬 포트를 들 수 있으며, 이때 이 포트는 상기 공유 버스에 접속되어 있지 않은 다른 외부 구성요소와 상기 공유 버스에 접속되어 있는 외부 구성요소와 정보를 주고 받는다. 또한, 도 4에 도시된 본 발명의 실시예에서, 프로세서(156)는 EMAU 버스(142), EMAU(144), 및 공유 버스(148)를 통해 공유 버스 중재기(150), 데이터 메모리 제어기(154), 및 직접 메모리 액세스 유닛(DMA)(152)과 통신을 한다. 공유 버스 중재기(150)는 다른 버스 마스터가 상기 공유 버스를 액세스하고 있는지를 결정함으로써, 그리고 액세스하고 있으면 액세스하고 있는 특정 버스 마스터가 상기 공유 버스에 대한 액세스를 요구하고 있는 버스 마스터보다 높은 우선권 상태를 가지고 있는지를 결정함으로써 다수의 버스 마스터(예컨대, EMAU(144)와 DMA(152))사이에 상기 공유 버스의 제어를 할당한다.The
잘 알려진 수많은 버스 중재기가 공유 버스 중재기(150)로서 사용될 수 있다. 예컨대, 공유 버스 중재기(150)의 일실시예는 PCI 버스를 사용하는 컴퓨터 시스템 구조에 사용되는 시스템 중재 논리 유닛이다. 이들 버스 중재기중 일부는 개별적인 요구 라인과 개별적인 승인 라인을 통해 각각의 버스 마스터에 접속되어 있다. 다른 버스 중재기가 각각의 버스 마스터의 액세스 시간을 이들 각각의 라인에 시간 다중화함으로써 공통 요구 라인과 공통 승인 라인을 통해 모든 버스 마스터에 접속되어 있다. 또 다른 중재기가 또한 모든 버스 마스터에의 접속을 위해 공통 요구 라인과 공통 승인 라인을 사용할 수도 있지만, 어떤 버스 마스터가 상기 요구 라인상에서 요구를 행하고 있는지 그리고 어떤 버스 마스터가 상기 승인 라인상에서 공유 버스 액세스를 승인하였는지를 결정하기 위해 (시간 다중화 기술을 사용하기 보다는) 상기 중재기와 버스 마스터에 디코더를 사용한다.Many well known bus arbiters may be used as the shared
상기 요구 라인과 승인 라인을 통해 공유 버스 중재기(150)가 상기 버스 마스터에 접속되어 있는 방식에 관계없이, 본 발명의 일실시예의 경우에, 상기 중재기는 다음과 같은 방식으로 동작한다. 상기 공유 버스에 대한 액세스를 얻기 위해, 버스 마스터는 그 요구 라인상의 신호를 제1논리 상태(예컨대, "1" 논리 레벨)로 만들어야 한다. 중재기(150)가 상기 공유 버스에 대한 그리고 상기 요구 버스 마스터에 대한 액세스를 승인하고자 하는 경우에, 상기 중재기는 상기 승인 라인상의 신호를 그 버스 마스터의 제2논리 상태(예컨대, "1")로 만들어야 한다. 상기 중재기가 나중에 상기 공유 버스에 대한 특정 액세스를 종료하고자 하는 경우에, 상기 중재기는 상기 액세스하는 버스 마스터의 상기 승인라인측의 신호를 제3논리 상태(예컨대, "0")로 만들어야 하며, 이에따라 상기 액세스하는 버스 마스터는 상기 공유 버스에 대한 액세스를 종료할 수 있고 그리고 다음 클럭 사이클에서 그 요구 라인상의 신호를 제4논리 상태(예컨대, "0")로 만들 수 있다.Regardless of how shared
따라서, 상기 공유 버스를 통해 통신을 개시하기 전에, 프로세서(156)는 상기 공유 버스를 구동하기 위한 허가를 얻기 위해, 공유 버스 중재기(150)와 통신을 개시한다. 특히, 상기 공유 버스에 대한 액세스를 얻기 위해, 프로세서(156)는 상기 공유 버스를 통해 외부 액세스를 개시하도록 이를 상기 EMAU에 요구한다. 이때, EMAU(144)는 상기 요구 라인측의 신호를 제1논리 상태로 만들고, 상기 중재기가 상기 승인 라인측의 신호를 (상기 중재기가 상기 공유 버스, 즉 상기 EMAU에 대한 액세스를 승인하였음을 나타내는) 제2논리 상태로 만들 때까지 대기한다. 상기 공유 버스에 대한 EMAU의 액세스는 상기 중재기가 상기 EMAU의 상기 승인 라인측의 신호를 제3논리 상태로 만들면 상기 중재기에 의해 종료될 수 있으며, 이에따라 상기 EMAU는 상기 공유 버스에 대한 액세스를 종료할 수 있고 상기 요구 라인측의 신호를 다음 클럭 사이클에서 제4논리 상태로 만들 수 있다. 하지만, 후술되는 바와같이, 상기 프로세서는 상기 중재기가 상기 승인라인측의 신호를 제3논리상태로 만드는 것에 응답하여 상기 요구 라인측의 신호를 제4논리상태로 만들기를 거부함으로써, 상기 공유 버스에 대한 액세스를 종료하기를 거부할 수 있도록 상기 EMAU를 프로그래밍할 수 있다(즉, 상기 공유 버스를 로크할 수 있도록 상기 EMAU를 프로그래밍할 수 있다).Thus, prior to initiating communication over the shared bus,
프로세서(156)는 또한 EMAU 버스(142), EMAU(144), 및 공유 버스(148)를 통해 데이터 메모리 뱅크 제어기(154)와 통신한다. 데이터 메모리 뱅크 제어기(154)를 N개의 데이터 뱅크(158)에 접속하는 특정 개수의 제어 라인(도 4에 도시되어 있지 않음)의 액티브를 통해, 상기 데이터 메모리 뱅크 제어기는 상기 데이터 메모리 뱅크를 특정 버스에 할당한다(즉, 상기 데이터 메모리 뱅크가 상기 공유 버스 또는 전용 버스로부터 정보를 수신할 수 있도록 해 준다). 상기 버스 마스터는 특정 데이터 메모리 뱅크를 특정 버스에 할당하도록 제어기(154)에 요구하기 위해, 상기 공유 버스를 통해 데이터 메모리 뱅크 제어기(154)를 액세스한다. 상기 데이터 메모리 뱅크 제어기가 특정 버스 마스터를 특정 데이터 뱅크에 액세스하도록 결정하면, 상기 제어기는 데이터 뱅크에 접속되어 있는 제어 라인을 통해 제어신호를 전송한다. 이때, 상기 데이터 뱅크는 이들이 액세스되어야 하는지 그리고 액세스되어야 하면 상기 공유 버스 또는 전용 버스로부터 정보를 수신해야 하는지를 결정하기 위해 상기 제어 신호를 디코딩한다. 상기 공유 버스 또는 전용 버스를 통해 액세스되게 됨을 상기 요구 데이터 뱅크에 알린 후에, 상기 데이터 뱅크 메모리 제어기는 상기 공유 버스측의 버스 마스터측에 허가 신호를 전송한다. 특정 데이터 뱅크를 액세스하는데에 대한 허가신호를 수신하는 즉시, 상기 요구하는 버스 마스터는 상기 공유 버스 또는 전용 버스를 통해 상기 요구 데이터 뱅크에 대한 데이터 액세스를 개시한다.
도 4에 도시된 본 발명의 실시예의 경우에, EMAU(144)는 상기 전용 버스 또는 공유 버스를 통해 데이터 메모리 뱅크를 액세스할 수 있는 유일한 버스 마스터이다. 환언하면, 상기 전용 버스를 통해 특정 데이터 메모리 뱅크를 액세스할 수 있는 유일한 버스 마스터는 EMAU(144)이다. 본 발명의 이 실시예는 특정 데이터 뱅크를 액세스하는 다른 구성요소로 인해 생기는 프로세서의 데이터 액세스의 인터럽션을 방지함으로써 프로세서(156)의 데이터 액세스 시간을 줄이기 위해, 상기 EMAU가 상기 전용 버스를 통해 상기 데이터 뱅크를 액세스할 수 있도록 해 줄 뿐이다. 특히, 상기 프로세서(156)는 상기 컴퓨터 시스템의 다른 구성요소가 상기 데이터 뱅크를 액세스할 수 있도록 해 주기 위해 데이터 액세스를 종료하지 않기 때문에, 상기 프로세서의 데이터 액세스 시간은 최소화된다. 오히려, 프로세서(156)는 상기 전용 버스를 통해 특정 데이터 뱅크를 액세스할 수 있고, 이에따라 다른 구성요소는 상기 공유 버스를 통해 다른 데이터 뱅크를 액세스할 수 있다. 또한, 본 발명의 이 실시예는 상기 전용 버스가 과부하되지 않도록 함으로써 프로세서(156)의 데이터 액세스 시간을 줄이기 위해, 상기 EMAU가 상기 전용 버스를 통해 상기 데이터 뱅크를 액세스할 수 있도록 해 줄 뿐이다.In the case of the embodiment of the present invention shown in FIG. 4,
도 4에 도시된 본 발명의 실시예의 경우에, 프로세서(156)는 또한 직접 메모리 액세스 유닛(DMA)(152)과 통신하는데 EMAU 버스(142), EMAU(144), 및 공유 버스(148)를 사용한다. 직접 메모리 액세스 유닛(152)은 다수의 외부 구성요소(예컨대, 도 4에 도시되지 않은 외부 시스템 메모리)를 전용 버스(148)를 통해 상기 데이터 뱅크측에 접속한다. 또한, 이들 외부 구성요소는 EMAU(144)가 전용 버스(146)를 통해 액세스하지 않을 때 상기 공유 버스 접속을 통해 특정 데이터 뱅크를 액세스할 수 있다. 또한, 프로세서(156)는 프로세서가 액세스하고자 하는 데이터 뱅크를 외부 구성요소가 액세스할 수 있도록 상기 DMA를 프로그래밍하기 위해 DMA(152)와 통신한다. 예컨대, 상기 프로세서가 데이터 뱅크 액세스를 종료하면, 그 데이터 뱅크의 내용이 외부 구성요소에 의해 검토되기를 원하게 된다. 따라서, 프로세서는 (외부 메모리 액세스 유닛과 공유 버스를 통해) 직접 메모리 액세스 유닛을 액세스하고, 상기 데이터 뱅크의 내용을 상기 외부 구성요소에 제공하기 위해 상기 유닛을 프로그래밍한다.In the case of the embodiment of the present invention shown in FIG. 4, the
이전에 언급한 바와같이, 상기 데이터 액세스 시간을 최소화하기 위해, 프로세서(156)는 N개의 데이터 메모리 뱅크(158)를 액세스하는데 EMAU 버스(142), EMAU(144), 및 전용 버스(146) 또는 공유 버스(148)를 사용한다. 환언하면, 본 발명의 외부 메모리 액세스 장치는 상기 프로세서가 짧은 데이터 액세스 시간을 가질 수 있도록 해 준다. 예컨대, 프로세서(156)가 전용 버스(146)를 통해 데이터 메모리 뱅크(158)를 액세스할 때, 상기 외부 메모리 액세스 장치(140)는 기록 동작이 시작되면 상기 프로세서가 X+Y 클럭 사이클에서, 그리고 판독 동작이 시작되면 X+Y+Z 클럭 사이클에서 데이터 메모리의 X 위치를 액세스할 수 있도록 해 주며, 이때 (1) X는 상기 데이터 메모리에 액세스된 위치의 개수를 나타내고, (2) Y는 상기 EMAU를 프로그래밍하는데 필요한 클럭 사이클의 개수를 나타내며, (3) Z는 상기 판독 동작동안에 데이터를 프리페치하는데 필요한 클럭 사이클의 개수를 나타낸다. 도 4에 제시된 본 발명의 실시예의 경우에, 프로그래밍 클럭 사이클(Y)은 2이고, 프리페치 클럭 사이클(Z)은 2이다. 또한, 상기 프로세서(156)가 특정 데이터 메모리 뱅크를 액세스하는데 공유 버스를 사용하면, 외부 메모리 액세스 장치(140)는 상기 프로세서가 기록 동작이 시작되면 X+Y+W 클럭 사이클에서, 그리고 판독 동작이 시작되면 X+Y+Z+W 클럭 사이클에서, 상기 데이터 메모리의 Y위치를 액세스하며, 이때 W는 중재기가 상기 공유 버스에 대한 액세스를 승인할 때까지 상기 EMAU가 대기하는 클럭 사이클의 개수를 나타낸다.As previously mentioned, to minimize the data access time,
또한 후술되는 바와같이, 프로세서(156)는 전용 버스 또는 공유 버스를 통해 외부 액세스를 개시하고자 할 때, 먼저 초기 프로그래밍 단계 동안에 상기 EMAU를 프로그래밍한다. 예컨대, 상기 초기 프로그래밍 단계 동안에, 상기 프로세서(156)는 상기 공유 버스 또는 전용 버스를 통해 상기 EMAU가 액세스하고자 하는 외부 구성요소의 시작 주소를 EMAU에게 알려 준다. 상기 초기 프로그래밍 단계 동안에, 프로세서(156)는 또한 블록 외부 액세스 동작 또는 단일 외부 액세스 동작의 개시를 필요로 하는지를 상기 EMAU에게 알려 준다. 프로세서(156)가 블록 외부 액세스동작을 요구하는 경우에, 상기 프로세서는 또한 블록의 크기, 스텝 크기, 및 특정 블록 모드 액세스 방법(즉, 인크리멘트 또는 디크리멘트 액세스 방법)을 상기 EMAU에게 알려 준다. 또한, 프로세서(156)는 상기 공유 버스를 통해 액세스를 개시한 후에 상기 EMAU가 상기 중재기의 그 승인 신호의 제거에 응답하여 액세스 해제를 거부해야 하는지를(즉, 상기 EMAU가 상기 공유 버스를 로크해야 하는지를) 상기 EMAU에게 알려 준다. 상기 프로세서(156)가 EMAU(144)에게 개시할 것을 요구한 외부 액세스가 외부 데이터 액세스이면, 프로그래밍된 정보도 또한 전용 버스 또는 공유 버스를 통해 상기 데이터 뱅크를 액세스해야 하는지를 상기 EMAU에게 알려 준다. 상기 EMAU가 프로그래밍된 후에, 상기 프로세서는 외부 판독 또는 기록 명령(예컨대, EMAU(144)의 외부 데이터 레지스터중 한 레지스터에 지시된 판독 명령 또는 기록 명령)을 제공함으로써 상기 EMAU를 통해 상기 프로세서와 상기 외부 구성요소간의 통신을 개시한다.As also described below, the
2. 외부 메모리 액세스 유닛 버스2. External memory access unit bus
본 발명의 일실시예를 위해, 도 5에는 도 1의 EMAU 버스(142), EMAU(144), 전용 버스(146), 및 공유 버스(148)의 보다 상세한 도면이 제시되어 있다. 이 도면에 도시된 바와같이, 상기 EMAU 버스는 외부 데이터 버스 라인(180), 외부 입/출력 액세스 버스 라인(182), EMAU 레지스터 버스 라인(184), 판독/기록 버스 라인(186), 및 정지 프로세서 버스 라인(188)을 포함하고 있다.For one embodiment of the present invention, FIG. 5 shows a more detailed view of the
도 5에 도시된 본 발명의 실시예의 경우에, 외부 데이터 버스 라인(180)은 프로세서(156)와 EMAU(144) 사이에서 16 비트 데이터 워드를 전송하는데 사용되는 16 비트 라인이다. 또한, 외부 입/출력 액세스 버스 라인(182)은 1비트 라인이고, 이때 프로세서(156)는 이 라인을 상기 외부 메모리 액세스 유닛측에 외부 입/출력 액세스 신호를 공급하는데 사용한다. 이 외부 입/출력 액세스 신호는 또한 상기 프로세서가 외부 입/출력 액세스를 개시하고자 하는지를 상기 외부 메모리 액세스 유닛측에 알리며, 이에따라 상기 외부 메모리 액세스 유닛은 상기 프로세서가 상기 EMAU 버스상으로 전송하는 기타 다른 신호를 검토할 수 있다.In the case of the embodiment of the present invention shown in FIG. 5, the external data bus line 180 is a 16 bit line used to transfer a 16 bit data word between the
EMAU 레지스터 버스(184)는 2비트 라인 버스이고, 이때, 상기 프로세서는 이 버스를 상기 EMAU의 특정 레지스터와 통신하는데 사용한다. 환언하면, 프로세서(156)는 특정 EMAU 레지스터와의 통신을 명령하는데 EMAU 레지스터 버스(184)를 사용한다. 상기 EMAU 버스는 또한 프로세서가 상기 외부 액세스가 판독 동작(즉, 입력 동작) 또는 기록 동작(즉, 출력 동작)을 포함하고 있음을 상기 EMAU에게 알리기 위해 사용하는 판독/기록 버스 라인(186)을 포함한다.
마지막으로, 상기 EMAU 버스는 정지 프로세서 버스 라인(188)을 포함하고 있으며, 이 라인은 상기 EMAU가 프로세서(156)의 동작을 정지시키는데 사용된다. 예컨대, 대기 상태 머신을 가지고 있지 않은 프로세서(156)의 실시예의 경우에, 상기 EMAU는 상기 프로세서의 동작을 정지시키기 위해 정지 프로세서 클럭 신호를 상기 프로세서의 클럭 게이트 회로측으로 보내는데 정지 프로세서 라인(188)을 사용한다. 한편, 대기 상태 머신을 가지고 있지 않은 프로세서(156)의 실시예의 경우에, EMAU(144)는 상기 대기 상태 머신이 프로세서를 아이들 상태로 만들 수 있도록 하기 위해 대기 신호를 상기 대기 상태 머신측으로 보낸다. 상기 EMAU는 (1) 클럭 모듈(202)이 상기 프로세서와 상기 EMAU의 전원을 다운시키기 위해 정지 요구 신호를 EMAU측으로 보낼 때, 또는 (2)판독 동작의 초기 프리페치 단계 동안에 상기 EMAU가 두 클럭 사이클 동안에 상기 프로세서를 정지시켜야 할 때 정지 프로세서 클럭 신호 또는 대기 신호를 프로세서측으로 보낸다.Finally, the EMAU bus includes a stop
설명을 위해 도 5에서는 EMAU 버스(142)의 특정 비트 라인 수에 대해 설명하고 있지만, 본 발명의 다른 실시예에서는 상기 EMAU 버스는 다른 폭을 가지고 있음은 물론이다. 예컨대, 설명을 위해 도 5에서는 16 비트 데이터 워드를 전송하는 16 비트 라인 외부 데이터 버스를 제시하고 있지만, 본 발명의 다른 실시예의 경우에서 외부 데이터 버스(180)는 다른 폭을 가질 수 있고 그리고 상이한 비트 크기를 가지고 있는 데이터 워드를 전송할 수 있다. 따라서, EMAU(144)의 일실시예에서는 8 비트 데이터 워드를 수신하고, 이 16 비트 데이터 워드를 프로세서(156)측으로 전달하기 위해 부호 확장 기술을 사용한다.For the purpose of illustration, FIG. 5 illustrates a specific number of bit lines of the
3. 전용 버스 및 공유 버스3. Dedicated bus and shared bus
본 발명의 일실시예를 위해, 도 5에는 또한 본 발명의 전용 버스와 공유 버스의 보다 상세한 도면이 제시되어 있다. 이 도면에 도시된 바와 같이, 이들 각각의 버스는 판독 버스 라인(206)과 기록 버스 라인(208)을 포함하고 있다. 이들 판독 버스 라인과 기록 버스 라인은 상기 프로세서가 판독 동작 또는 기록 동작을 수행하기를 원하고 있음을, 상기 프로세서가 상기 EMAU를 통해 액세스하고 있는 외부 구성요소에게 알리기 위해, 전용 버스와 공유 버스내에서 사용된다. 또한, 상기 전용 버스와 공유 버스는 16 비트 라인 주소 버스(210)를 가지고 있고, 이때 이들은 이 주소 버스(210)를 외부적으로 액세스된 구성요소의 주소를 전송하는데 사용한다. 마지막으로, 이들 두 버스는 16 비트 라인 쌍방향 데이터 버스(212)를 가지고 있으며, 이들은 프로세서(156)와 상기 외부적으로 액세스된 구성요소 사이에서 데이터 신호를 전달하는데 사용된다. 설명을 위해 도 5에는 전용 버스와 공유 버스의 특정 폭이 제시되어 있지만, 본 발명의 다른 실시예의 경우에서는, 이들 버스는 다른 폭을 가질 수 있음은 물론이다.For one embodiment of the present invention, Figure 5 also shows a more detailed view of the dedicated and shared buses of the present invention. As shown in this figure, each of these buses includes a read bus line 206 and a write bus line 208. These read bus lines and write bus lines are provided in a dedicated bus and a shared bus to inform external components that the processor is accessing via the EMAU that the processor wants to perform a read or write operation. Used. In addition, the dedicated bus and shared bus have a 16-bit line address bus 210, which uses this address bus 210 to transmit the address of an externally accessed component. Finally, these two buses have a 16 bit line bidirectional data bus 212, which is used to carry data signals between the
4. 외부 메모리 액세스 유닛4. External memory access unit
도 5에는 또한 본 발명의 외부 메모리 액세스 유닛의 일실시예가 제시되어 있다. 이 도면에 도시된 바와같이, 외부 메모리 액세스 유닛은 EMAU 클럭 발생기(192), 공유 및 전용 버스 인터페이스(190), 및 상태 머신 블록(194)을 포함하고 있다. 상기 EMAU 클럭 발생기는 시스템 클럭 모듈(202)로부터 클럭 신호를 수신하고, 이들 클럭 신호를 강화하며, 그리고 이들 강화된 신호를 상태 머신 블록(194)측에 그리고 공유 및 전용 버스 인터페이스(190)측에 제공한다.Figure 5 also shows one embodiment of the external memory access unit of the present invention. As shown in this figure, the external memory access unit includes an
도 5에 도시된 바와같이, 상태 머신 블록(194)은 프로세서(156)가 외부 메모리 액세스 유닛을 통해 상기 공유 버스를 액세할 수 있는 때를 결정하기 위해, 중재기(150)로부터 상기 공유 버스 승인 신호와 공유 버스 요구 신호를 수신한다. 또한, 이전에 언급한 바와같이, 상태 머신 블록(194)은 상기 프로세서와 상기 EMAU가 전원 다운될 수 있도록 시스템 클럭 모듈(202)로부터 (정지 요구 라인(200)측의) 정지 요구 신호를 수신한다. 또한, 후술되는 바와같이, 상태 머신 블록(194)은 외부 액세스가 개시될 수 있는 때를 결정하기 위해, 외부 I/O 액세스 버스(182), EMAU 레지스터 버스(184), 판독/기록 버스(186), EMAU 제어 버스(204), 및 공유 버스 승인 라인측의 신호를 수신한다. 외부 액세스가 개시될 수 있음을 결정한 때, 상태 머신 블록(194)은 프로세서로부터의 외부 판독 또는 기록 명령에 응답하여 외부 데이터 액세스를 개시할 수 있도록 하기 위해, (EMAU 제어 버스(204)를 통해) 인에이블신호를 공유 및 전용 버스 인터페이스(190)측으로 전송한다. 환언하면, 상태 머신 블록(194)은 공유 및 전용 버스 인터페이스(190)의 동작을 제어하는 인에이블 신호를 발생할 수 있도록(따라서, EMAU(144)의 동작을 제어할 수 있도록), 프로세서(156)가 공유 및 전용 버스 인터페이스(190)측으로 전송하는 신호를 감시한다.As shown in FIG. 5, state machine block 194 grants the shared bus acknowledgment from
공유 및 전용 버스 인터페이스(190)는 초기 프로그래밍 단계 동안에 프로세서(156)가 프로그래밍하는 다수의 레지스터를 포함하고 있다. 프로세서(156)는 외부 I/O 액세스(182), EMAU 레지스터(184), 및 판독/기록 버스(186)를 따라 전송된 제어 신호를 통해 공유 및 전용 버스 인터페이스(190)의 레지스터의 프로그래밍을 제어한다. 또한, 외부 데이터 버스(180)를 통해, 프로세서(156)는 공유 및 전용 버스 인터페이스(190)의 특정 레지스터측으로 프로그래밍 신호를 전송한다. 또한, 공유 및 전용 버스 인터페이스(190)는 프로세서(156)와 그리고 외부 구성요소(예컨대, 외부 데이터 메모리 뱅크(158))와 정보를 주고 받는데 외부 데이터 버스(180)를 사용한다. 마지막으로, 공유 및 전용 버스 인터페이스(190)는 상태 머신 블록(194)과 제어 신호를 송수신하는데 EMAU 제어 버스(204)를 사용한다.Shared and
5. 공유 및 전용 버스 인터페이스5. Shared and dedicated bus interface
도 6에는 도 5의 EMAU(144)의 공유 및 전용 버스 인터페이스(190)의 일실시예의 보다 상세한 도면이 제시되어 있다. 이 도면에 도시된 바와같이, 공유 및 전용 버스 인터페이스(190)는 버스 인터페이스 제어 유닛(220), 외부 액세스 제어 레지스터(EACR)(222), 외부 판독 주소 유닛(ERAU)(224), 외부 기록 주소 유닛(EWAU)(230), 외부 데이터 판독 레지스터(EDRR)(226), 및 외부 데이터 기록 레지스터(EDWR)(228)를 포함하고 있다. 제어 유닛(220)은 외부 데이터 버스(180), 외부 I/O 액세스 버스(182), EMAU 레지스터 버스(184), 및 판독/기록 버스(186)를 통해 프로세서(156)에 접속되어 있다. 제어 유닛(220)은 프로세서(156)와 공유 및 전용 버스 인터페이스(190)의 외부 레지스터간의 통신을 제어하는 디코더이다. 예컨대, 제어 유닛(220)은 상기 프로세서가 외부 I/O 액세스 버스 라인(182)을 통해 외부 액세스의 개시를 지시해 줄 때까지 상기 EMAU 버스(142)측의 어떤 신호가 공유 및 전용 버스 인터페이스(190)의 레지스터에 도달하지 않도록 해 준다. 외부 I/O 액세스 버스(182)상에서 외부 액세스 신호가 검출되면, 제어 유닛(220)은 상기 EMAU 레지스터 버스(184)측의 신호를 검토함으로써 상기 프로세서가 통신하고자 하는 레지스터를 결정한다. 이전에 언급한 바와같이, 본 발명의 일실시예의 경우에, 상기 EMAU 레지스터 버스는 두 비트 라인을 가지고 있다. 따라서, 본 발명의 이 실시예를 위해, 표 1에는 프로세서(156)가 통신하는 (버스 인터페이스(190)의) 외부 레지스터를 결정하는데 제어 유닛(220)에 의해 사용된 디코딩 논리가 설명되어 있다.FIG. 6 shows a more detailed view of one embodiment of the shared and
일단, 제어 유닛(220)은, 프로세서(156)가 공유 및 전용 버스 인터페이스의 어떤 외부 레지스터와 통신하고자 하는지를 결정하면, 요구된 외부 레지스터를 인에이블시키고 버스 인터페이스(190)의 외부 레지스터의 나머지를 디스에이블시킨다. 이때, 제어 유닛(220)은 상기 요구된 레지스터와 상기 프로세서간의 통신을 개시시키기 위해, 외부 데이터 버스(180)와 판독/기록 버스(186)측의 신호를 상기 요구된 레지스터측으로 보낸다.Once the
또한, 도 6에 도시된 바와같이, 제어 유닛(220)은 클럭 버스(198)측의 클럭 신호를 수신한다. 제어 유닛(220)은 자신의 동작을 위해 클럭 신호를 사용하고 이 클럭 신호를 (버스 인터페이스 제어 버스(232)를 통해) 공유 및 전용 버스 인터페이스의 외부 레지스터측으로 전송한다. 도 6에 도시되어 있는 바와같이, 제어 유닛(220)은 또한 EMAU 제어 버스(204)를 따라 상태 머신 블록(194)으로부터 신호를 수신한다. 이 도면에 도시된 바와같이, 상태 머신 블록(194)이 공유 및 전용 버스 인터페이스(190)와 통신하는데 사용하는 제어 라인은, 프로세서(156)가 외부 주소 유닛(224 또는 230)과의 통신을 개시한 후에 상기 제어 유닛이 카운터 인에이블 신호를 외부 주소 유닛(224)측으로 전송하는데 사용하는 카운터 인에이블 라인을 포함하고 있다.In addition, as shown in FIG. 6, the
상태 머신 블록(194)이 공유 및 전용 버스 인터페이스(190)와 통신하는데 사용하는 제어 라인은 또한 공유 및 전용 버스 판독 및 기록 인에이블 라인을 포함하고 있다. 이들 라인상의 신호는 버스 인터페이스 제어 버스(232)와 인에이블 버스(234)를 따라 외부 메모리 인터페이스 유닛(238)측으로 제어 유닛에 의해 전송된다. 이들 공유 및 전용 버스 판독 및 기록 인에이블 신호를 기초로, 외부 메모리 인터페이스 유닛(238)은 상기 공유 버스 또는 전용 버스가 외부 액세스를 위해 요구되고 있는지, 그리고 요구되고 있으면 외부 액세스가 판독 또는 기록 동작을 포함하고 있는지를 결정한다.The control lines that state machine block 194 uses to communicate with shared and
따라서, 외부 메모리 인터페이스 유닛이 상기 전용 버스가 외부 판독을 위해 요구되고 있는 것으로 결정하면, 외부 메모리 인터페이스 유닛(238)은 상기 공유 버스상의 모든 버스 라인을 3 상태로 만들고, 상기 전용 버스의 기록 버스 라인을 디액티브시키며, 그리고 전용 버스의 주소 버스, 데이터 버스, 및 판독 버스 라인을 액티브시킨다. 한편, 상기 프로세서가 외부 기록을 위해 상기 전용 버스를 요구하면, 외부 메모리 인터페이스 유닛(238)은 상기 공유 버스상의 모든 버스 라인을 3 상태로 만들고, 전용 버스의 판독 버스 라인을 디액티브시키며, 그리고 전용 버스의 주소 버스, 데이터 버스, 및 기록 버스 라인을 액티브시킨다. 하지만, 프로세서(156)가 상기 공유 버스를 따라 외부 판독을 요구하였으면, 외부 메모리 인터페이스 유닛(238)은 상기 전용 버스상의 모든 버스 라인을 디액티브시키고, 공유 버스의 기록 버스 라인을 디액티브시키며, 그리고 공유 버스의 주소 버스, 데이터 버스, 및 판독 버스 라인을 액티브시킨다. 마지막으로, 상기 프로세서가 상기 공유 버스를 따라 외부 판독을 요구하면, 외부 메모리 인터페이스 유닛(238)은 상기 전용 버스상의 모든 버스 라인을 디액티브시키고, 공유 버스의 기록 버스 라인을 디액티브시키며, 그리고 공유 버스 주소 버스, 주소 버스, 및 기록 버스 라인을 액티브시킨다.Thus, if an external memory interface unit determines that the dedicated bus is required for external readout, the external
a. 외부 액세스 제어 레지스터a. External access control register
이전에 언급한 바와같이, 외부 데이터 액세스를 개시하기 위해, 프로세서(156)는 초기에 초기 프로그래밍 단계 동안에 EMAU(144)를 프로그래밍한다. 도 6에 도시되어 있는 공유 및 전용 버스 인터페이스(190)의 실시예의 경우에, 프로그래밍 동작은 다음과 같다. 2 사이클 초기 프로그래밍 단계의 제1사이클 동안에, 프로세서(156)는 외부 액세스 제어 레지스터(222)를 프로그래밍한다. 프로세서(156)는 외부 I/O 액세스 라인(182)측의 외부 입력 또는 출력 액세스를 먼저 지시함으로써 외부 액세스 레지스터(222)의 상기 프로그래밍을 개시한다. 프로세서(156)는 또한 외부 액세스 제어 레지스터(222)와 통신하기를 원하고 있음을 제어 유닛(220)측에 알리기 위해, 상기 EMAU 레지스터 버스상으로 "0"을 전송한다. 이때, 프로세서(156)는 판독/기록 버스(186)측에 기록 신호를 제공함으로써 그리고 외부 데이터 버스(180)를 통해 공유 및 전용 버스 인터페이스(190)측으로 제1제어 워드를 전송해 줌으로써 EACR(222)에 제1제어워드를 프로그래밍한다. 표 2에는 제1제어워드의 일예가 설명되어 있다.As mentioned previously, to initiate external data access,
제1제어 워드의 제9비트와 제10비트는 상기 프로세서가 단일 액세스 동작 또는 블록 액세스 동작의 개시를 계획하고 있는지를 지시해 준다. 블록 액세스 동작이 필요하면, 이들 제9 및 제10비트는 또한 상기 프로세서가 인크리멘트 또는 디크리멘트 블록 모드 동작을 원하는지를 지시해 준다. 표 3에는 제9 및 제10비트가 액세스 동작의 모드를 지시하는데 사용되는 한가지 방법이 설명되어 있다.The ninth and tenth bits of the first control word indicate whether the processor is planning to initiate a single access operation or a block access operation. If a block access operation is needed, these ninth and tenth bits also indicate whether the processor desires incremental or decremented block mode operation. Table 3 describes one method by which the ninth and tenth bits are used to indicate the mode of access operation.
이때, EACR(222)은 프로세서(156)가 요구한 액세스 동작의 종류를 (ERAU(224) 또는 EWAU(230)의) 주소 카운터 유닛(244 또는 247)에게 알려 준다. 프로세서(156)가 어떤 종류의 블록 모드 액세스 동작(즉, 자동 인크리멘트 또는 자동 디크리멘트 블록 모드 액세스 동작)을 요구하면, 상기 제1제어 워드의 제1의 8비트(즉, 루프 크기 비트)는 상기 액세스된 블록의 크기(즉, 루프 크기)를 결정한다. 이들 제1의 8비트는 상기 프로세서가 1에서 256까지의 어떤 블록 크기를 선택할 수 있도록 해 준다. 외부 액세스 제어 레지스터(222)는 주소 카운터 유닛(244 또는 247)측에 상기 블록 크기를 제공해 준다.At this time, the
프로세서(156)는 또한 액세스 모드를 프로그래밍하는데 제1제어워드의 제11비트를 사용한다. 특히, 프로세서(156)가 블록 모드 액세스를 요구하면, 상기 제11비트는 인크리멘트 또는 디크리멘트의 스텝 크기가 1 또는 2임을 상기 EMAU에게 알려 준다. 상기 프로세서가 스텝 크기 2를 프로그래밍할 수 있도록 해 주는 이러한 본 발명의 능력은 DSP 응용에 유리한데, 이는 실수 데이터 성분과 허수 데이터 성분이 인접 데이터 워드로서 상기 데이터 메모리에 저장되어 있을 때 상기 프로세서가 실수 데이터 또는 허수 데이터만을 액세스할 수 있도록 해 주기 때문이다. 또한, 외부 액세스 제어 레지스터(222)는 이 스텝 크기를 주소 카운터(224 또는 247)에게 알려 준다.
상기 제1제어워드의 제12비트는 EMAU가 상기 공유 버스를 로크시키게 되는지를 결정한다. 특히, 이 공유 버스 로크 비트가 세트되어 있으면(즉, "1"의 값을 가지고 있으면), 그리고 상기 EMAU가 상기 공유 버스를 통한 데이터 전송을 개시해야 함을 제2제어 워드의 제16비트(이하에서 언급되는 바와같이, 프로세서(156)는 이 워드를 ERAU(224) 또는 EWAU(230)를 프로그래밍함)가 지시하고 있으면, 상기 요구가 중재기(150)에 의해 승인된 후에 상기 EMAU는 상기 공유 버스를 로크하게 된다. 따라서, 공유 버스를 로크하기 위해 프로세서(156)가 상기 데이터 전송을 요구한 후에 상기 EMAU가 공유 버스를 액세스하면, 상기 중재기가 공유 버스 승인 신호를 제거한 후에라도 상기 EMAU는 공유 버스 요구 신호를 로우로 만들지 않게 된다(공유 버스 요구 신호가 로우로 되면 중재기는 상기 공유 버스에 대한 액세스를 다른 버스 마스터에 승인해 준다). 공유 버스를 로크한 후, 상기 EMAU는 상기 프로세서가 상기 공유 버스를 통한 액세스를 종료한 후에 상기 공유 버스를 자동적으로 언로크하지 않는다. 특히, 상기 EMAU가 공유 버스의 로크상태를 해제하기 위해서, 상기 프로세서(156)는 외부 액세스 제어 레지스터를 다시 프로그래밍하여야 한다(즉, 프로세서(156)는 제12비트가 클리어된("0"의 값을 가지고 있는) 다른 제어워드를 EACR(222)에 기록해야 한다). 이와 같이 공유 버스에 대해 로크상태를 유지하는 상기 프로세서의 능력은 판독 수정 기록 동작 동안에 유용하다. 마지막으로, 이 공유 버스 로크 비트가 세트되지 않은(즉, "0"의 값을 가지고 있지 않은) 경우에는, 상기 공유 버스는 로크되지 않으며, 상기 EMAU는 상기 중재기가 상기 승인 라인측의 신호를 로우상태로 한 후에 상기 공유 버스에 대한 액세스를 포기한다.The twelfth bit of the first control word determines whether an EMAU will lock the shared bus. In particular, if this shared bus lock bit is set (ie has a value of "1"), then the 16th bit of the second control word (hereinafter referred to as EMAU) should initiate data transfer over the shared bus. As mentioned in the following, if
또한, 프로세서(156)는, (1)외부 I/O 액세스 라인(182)상에 액티브 신호를 제공함으로써, (2)외부 액세스 제어 유닛(222)과 통신하기를 원하고 있음을 버스 인터페이스 제어 유닛(220)측에 지시해 주기 위해, EMAU 레지스터 버스(184)상으로 "0" 신호를 전송해 줌으로써, 그리고 (3) 판독/기록 버스 라인(186)상에 판독동작 신호를 제공함으로써, 외부 액세스 제어 레지스터(222)에 저장되어 있는 제1제어 워드를 판독할 수 있다. 이 신호에 응답하여, EACR(222)는 프로그래밍된 제1제어 워드를 버스 인터페이스 제어 버스(232)상에 제공하며, 이때 상기 워드는 상기 정보를, 제어 유닛(220)과 외부 데이터 버스(180)를 통해 프로세서(156)측으로 전달한다.In addition, the
b. 외부 주소 유닛b. External address unit
2클럭 사이클의 초기 프로그래밍 단계의 마지막 클럭 사이클에서, 프로세서(156)는 상기 외부 주소 유닛중 하나의 유닛을 프로그래밍한다. 이 클럭사이클 동안에, 프로세서(156)는 외부 입/출력 액세스 라인(182)상에서 액티브 신호를 유지하고, 그리고 외부 주소 유닛(224 또는 230)중 하나의 유닛과 통신하고자 함을 버스 인터페이스 제어 유닛(220)측에 지시해 주기 위해 상기 EMAU 레지스터 버스상으로 "1" 또는 "10" 신호를 전송해 준다. 외부 판독 동작을 개시하고자 하는 경우에, 프로세서(156)는 외부 판독 주소 유닛(224)을 프로그래밍하고, 외부 기록 동작을 개시하고자 하는 경우에는 외부 기록 주소 유닛(230)을 프로그래밍한다. 불필요한 설명으로 본 발명의 설명이 불명료해지지 않도록, 이하에서는 외부 판독 주소 유닛의 프로그래밍에 대해 설명하고 있다. 하지만, 이하에서의 설명이 상기 외부 기록 주소 유닛의 프로그래밍에도 마찬가지로 적용될 수 있음은 물론이다.In the last clock cycle of the initial programming phase of two clock cycles, the
ERAU(224)를 선택한 후, 프로세서(156)는 외부 데이터 버스(180)를 통해 외부 주소 유닛측으로 16비트의 제2제어 워드를 전송하고 그리고 판독/기록 버스 라인(186)상에 기록 동작 신호를 제공함으로써 외부 판독 주소 유닛(224)이 상기 신호를 기록할 수 있도록 해 준다. 상기 제2제어 워드의 제16비트는 상기 EMAU가 공유 버스 또는 전용 버스를 통한 판독동작을 개시해야 함을 지시하는데 사용된다. 이 제16비트는 ERAU(224)의 제2주소 레지스터(246)에 저장된다. ERAU는 상기 제16비트를 상태 머신(224)측에 공급하며, 이 머신은 후에 상기 EMAU가 외부 액세스를 개시해야 할 때 사용하는 버스를 선택하는 인에이블 신호를 발생한다. 도 6에 도시된 본 발명의 일실시예의 경우에, 상기 제16비트의 값이 "1"이면, 상기 EMAU는 공유 버스를 통해 외부 구성요소를 액세스할 수 있으며, 상기 제16비트의 값이 "0"이면 상기 EMAU는 상기 전용 버스를 통해 외부 데이터 액세스를 개시할 수 있다.After selecting the
제2제어 워드의 비트 1 내지 15는 공유 버스 또는 전용 버스에 접속되어 있는 외부 구성요소의 주소를 지시하기 위해 상기 프로세서에 의해 사용된다. 외부 데이터 액세스 동안에, 제2제어 워드의 비트 1 내지 15는 (1) 상기 EMAU가 단일 액세스 동작을 행할 때의 상기 요구된 데이터 워드의 주소, 또는 (2) 상기 EMAU가 블록 액세스 동작을 행할 때의 데이터 워드의 요구된 블록의 초기 주소를 지시해 준다. 상기 제2제어 워드의 제9비트 내지 제15비트는 외부 판독 주소 유닛(224)의 제2주소 레지스터(246)에 저장된다. 원래의 하위 8비트와 더불어 상기 7개의 비트는 외부 레지스터 위치(예컨대, N개 데이터 뱅크(158)중 한 뱅크에서의 메모리 위치)를 정의하고 있다.
제2제어 워드의 하위 8비트는 ERAU(224)의 주소 카운터 유닛(244)에 공급된다. 또한, 상태 머신 블록(190)이 액티브 카운터 인에이블 신호를 주소 카운터 유닛(244)에 공급할 때, 상기 주소 카운터 유닛은 이들 하위 8개 비트와 EACR(222)이 공급해 준 제어신호(즉, 스텝 크기, 루프 크기, 및 디크리멘트/인크리멘트 모드 신호)를 이용하여, 최고 256개의 외부 부분 주소를 발생한다. 환언하면, 프로세서(156)가 블록 모드 액세스를 요구한다면, 주소 카운터 유닛(244)은 공급받은 초기 8개 비트(즉, 제2제어 워드의 비트 1 내지 8)로부터 시작하여 1 또는 2 만큼 카운트 업 또는 카운트 다운함으로써 최고 256개의 외부 부분 주소를 발생한다.The lower 8 bits of the second control word are supplied to the address counter unit 244 of the
도 6에 도시된 바와같이, 주소 카운터 유닛(244)은 또한 (버스 인터페이스 제어 유닛(220)과 버스 인터페이스 제어 버스(232)를 통해 상태 머신 블록(194)으로부터) 카운터 인에이블 신호를 수신하며, 이에따라 카운터가 액티브되거나 디액티브된다. 이제, 카운터 유닛(224)이 액티브 카운터 인에이블 신호를 수신하는 제1의 2개 클럭 사이클 동안의 외부 판독 주소 유닛(224)의 동작에 대해 설명한다. 제1클럭 사이클의 하이 단계 동안에, 제2주소 레지스터(246)는 제2제어 워드의 비트 9 내지 16을 저장하고, 제1주소 레지스터(245)는 제2제어 워드의 비트 1 내지 8을 저장한다. 제1클럭사이클의 로우 단계 동안에, 제1주소 레지스터(245)는 제2제어 워드의 제1의 8개 비트를 제2주소 레지스터(246)측에 공급하며, 이때 이 레지스터(246)는 상기 하위 8개 비트를 비트 9 내지 16과 조합함으로써 완전한 제1외부 주소를 생성하고. 이 완전한 제1외부 주소를 저장한다. 또한, 이 로우 단계 동안에는 카운터(244)는 제1의 8비트 부분 주소를 발생한다. 제2클럭 사이클의 하이 단계 동안에, 상기 카운터(244)는 제1부분 주소를 제1주소 레지스터(245)에 공급하고, 그리고 제2주소 레지스터(246)는 제1외부 주소를 주소 출력 버스(236)를 따라 전송한다. 제2클럭 사이클의 로우 단계 동안에, 주소 카운터(244)는 제2의 8비트 부분 주소를 발생하고, 그리고 제2주소 레지스터(246)는 제1주소 레지스터(245)로부터 제1부분 주소를 수신하여, 제1부분 주소를 제2제어워드의 비트 9 내지 비트 16과 조합함으로써 완전한 제2외부 주소를 생성하고, 그리고 이 완전한 제2외부 주소를 저장한다.As shown in FIG. 6, the address counter unit 244 also receives a counter enable signal (from the
또한, 프로세서(156)는 (1)외부 I/O 액세스 라인(182)상에 액티브 신호를 제공함으로써, (2) ERAU(244)와 통신하고자 함을 제어유닛(220)측에 지시해 주기 위해 EMAU 레지스터 버스(184)상으로 "1" 신호를 전송함으로써, 그리고 (3) 판독/기록 버스 라인(186)상에 판독동작을 제공함으로써, ERAU(224)의 주소 레지스터에 저장되어 있는 현재의 주소 또는 상기 제2제어 워드를 판독할 수 있음에 주의하자. 이들 신호에 응답하여, ERAU(224)는 제어버스(232)상에 제2주소 레지스터(246)의 내용을 제공하고, 이 레지스터는 상기 정보를 제어유닛(220)과 외부 데이터 버스(180)를 통해 프로세서(156)측에 전송해 준다.In addition, the processor 156 (1) provides an active signal on the external I /
c. 외부 데이터 레지스터c. External data register
초기의 2클럭 사이클의 프로그래밍 단계 이후에, 프로세서(156)는 외부 입력(즉, 판독) 또는 출력(즉, 기록) 동작을 개시한다. 프로세서(156)는 판독동작 동안에 외부 데이터 판독 레지스터(즉, EDRR)(226)를 사용하고, 그리고 기록 동작 동안에는 외부 데이터 기록 레지스터(즉, EDWR)(228)를 사용한다. 이러한 레지스터 데이터 액세스 방법의 사용에 의해, 프로세서(156)의 데이터 액세스 시간이 줄어든다.After the initial two clock cycle programming phase,
특히, 앞에서 언급한 바와 같이, 프로세서(156)가 전용 버스(146)를 통해 데이터 메모리 뱅크(158)를 액세스하는 경우에, 외부 메모리 액세스 장치(140)는 기록 동작이 행해지는 때에는 X+Y 클럭사이클에서, 그리고 판독동작이 행해지는 때에는 X+Y+Z 클럭사이클에서, 상기 프로세서가 상기 데이터 메모리의 X 위치를 액세스할 수 있도록 해 주며, 이때, (1) X는 상기 데이터 메모리의 액세스되는 위치의 개수를 나타내고, (2) Y는 상기 EMAU를 프로그래밍하는데 필요한 클럭사이클의 개수를 나타내며, (3) Z는 판독동작 동안에 데이터를 프리페치하는데 필요한 클럭사이클의 개수를 나타낸다. 앞에서 언급한 바와같이, 본 발명의 일실시예의 경우, 프로그래밍 클럭 사이클(Y)은 2이고 그리고 프리페치 클럭사이클(Z)도 2이다. 한편, 프로세서(156)가 특정 데이터 메모리 뱅크를 액세스하는데 공유 버스(148)를 이용하면, 외부 메모리 액세스 장치(140)는 기록 동작이 행해지는때에는 X+Y+W 클럭사이클에서 그리고 판독동작이 행해지는 때에는 X+Y+Z+W 클럭사이클에서, 상기 프로세서가 상기 데이터 메모리의 X 위치를 액세스할 수 있도록 해 주며, 이때, W는 상기 중재기가 상기 공유 버스에 대한 액세스를 승인할 때까지 상기 EMAU가 대기하는 클럭사이클의 개수를 나타낸다.In particular, as mentioned above, in the case where the
이제, 판독 동작 동안에 공유 버스 및 전용 버스 인터페이스(190)의 동작에 대해, 전용 버스를 따라 실행되는 블록 판독 액세스 모드를 보인 도 7을 참조하여 설명한다. 이하의 설명은 공유 버스 판독 동작 동안에, 상기 중재기가 EMAU의 공유 버스 요구를 승인할 때까지 W 클럭사이클의 지연이 존재한다는 점을 제외하고는, 공유 버스를 따라 실행되는 블록 판독 액세스에 마찬가지로 적용가능하다.Operation of the shared bus and
상태 머신 블록(194)은 프로세서(156)가 제2외부 데이터 판독 레지스터(226a)로부터 외부 판독 동작을 요구하는 때를 결정하기 위해, 외부 I/O 버스(182), EMAU 레지스터 버스(184) 및 판독/기록 버스(186)를 포함하고 있다. (외부 I/O 액세스 신호, 판독 신호, 및 외부 데이터 레지스터(226a 또는 228)를 선택하는 EMAU 레지스터 신호에 의해 나타내어지는) 상기 요구가 검출되면, 2 클럭 사이클 동안에 프로세서를 정지 또는 아이들 상태로 만들기 위해, 상태 머신 블록(194)은 프로세서(156)에 공급되는 프로세서 정지 신호를 액티브시키며, 이에따라 EMAU(144)는 2개의 데이터 워드를 프리페치하고 이 데이터 워드를 외부 데이터 레지스터에 저장할 수 있다.The
특히, 상태 머신 블록(194)이 프로세서(156)가 제2EDRR(226a)로부터 외부판독을 요구함을 검출한 제1클럭 사이클 동안에, 상태 머신 블록(194)은 프로세서가 외부 데이터 레지스터(226a 또는 228)를 액세스하는 한, 카운터 인에이블 신호를 액티브시킨다. 또한, 이 제1클럭 사이클에서 로우 단계 동안에, 상태 머신 블록(194)은 (1) 정지 프로세서 라인(188)상에 프로세서 정지 신호를 제공하고, 그리고 이 신호를 두 클럭 사이클동안 유지하며(즉, 상태 머신 블록(194)이 외부 판독을 검출한 후 제3클럭 사이클의 로우 단계이 될 때까지 상기 신호를 유지하며), (2) 전용 버스 판독 인에이블 신호 버스를 액티브시키고 그리고 이 신호를, 상기 프로세서가 EDRR(226a)과의 통신을 종료한 후 1/2클럭사이클이 될 때까지 유지한다.In particular, during the first clock cycle when
상기 제2클럭사이클은 제1프리페치 사이클이며, 이 사이클 동안에 ERAU(224)는 주소 출력버스(236)를 따라 제1외부 주소를 외부 메모리 인터페이스 유닛(238)측에 전송한다. 인터페이스 유닛(238)은 전용 버스인 주소 버스(210p)를 따라 제1외부 주소를 전송한다. 또한, 제2클럭 사이클 동안, 공유 버스 및 전용 버스 인터페이스(190)는 (전용 버스의 판독라인(206p)상의) 전용 버스 판독신호를 액티브시키고, 이 액티브 신호를, 프로세서가 EDRR(226a)과의 통신을 종료한 후 1클럭 사이클이 될 때까지 유지한다. 마지막으로, 제2클럭 사이클 동안에, 제1EDRR(226b)은 특정 제1데이터 위치로부터 검색된 데이터를 저장하기 시작한다.The second clock cycle is a first prefetch cycle, during which the
상기 제3클럭사이클은 제2프리페치 사이클이며, 이 사이클 동안에 (1) ERAU(224)는 주소 출력 버스(236)와 주소 버스(210p)를 따라 제2외부 주소를 전송하고, (2) 제1외부 데이터 판독 레지스터(226b)는 제1주소 위치로부터 검색된 제1데이터 워드의 저장을 종료하고 그리고 제2데이터 위치로부터 검색된 제2데이터를 저장하기 시작하며, (3) 제2EDRR(226a)은 제1EDRR(226b)에 저장되어 있던 제1데이터 워드를 저장하고, (4) 상태 머신 블록(194)은 상기 정지 프로세서 신호를 디액티브(즉, 접지측으로 풀다운)시키고, (5) 프로세서(156)는 제2외부 데이터 판독 레지스터(226a)에 저장된 데이터를 수신하기 시작한다.The third clock cycle is a second prefetch cycle during which (1) the
도 7에 도시된 바와같이, 제4, 제5, 제6 클럭사이클 동안의 EMAU 동작은 동일하다. 이 3클럭 사이클 동안에, (1)상태 머신 블록(194)은 액티브 판독 인에이블 신호와 카운터 인에이블 신호를 공유 버스 및 전용 버스 인터페이스(190)측에 공급하고, (2) ERAU(224)는 제3, 제4 및 제5외부 주소를 주소 버스(236)와 주소 버스(210p)를 따라 전송하며, (3) 제1EDRR(226b)은 상기 제2주소 위치로부터의 제2데이터 워드의 저장을 종료하고, 그리고 제3 및 제4데이터 위치로부터 검색된 제3 및 제4데이터 워드를 저장하고, 그리고 제5데이터 위치로부터 검색된 제5데이터 워드를 저장하기 시작하며, (4) 제2EDRR(226a)은 제1EDRR(224b)에 저장되어 있던 제2, 제3 및 제4데이터 워드를 저장하고, (5) 프로세서(156)는 제2EDRR(226a)에 저장된 제1, 제2 및 제3데이터 워드의 검색을 종료하고 그리고 제2EDRR(226a)에 저장된 제4데이터 워드를 검색하기 시작한다.As shown in FIG. 7, the EMAU operation during the fourth, fifth and sixth clock cycles is the same. During this three clock cycle, (1) the state machine block 194 supplies an active read enable signal and a counter enable signal to the shared bus and
제7클럭 사이클 동안, (1) 상태 머신 블록(194)은 전용 버스 판독 인에이블 신호 및 카운터 인에이블 신호를 디액티브시키고, (2) ERAU(224)는 주소 출력 버스(236)와 주소 버스(210p)를 따라 6 외부 주소를 전송하며, (3) 제1EDRR(226b)은 제5주소 위치로부터의 제5데이터 워드의 저장을 종료하고, 그리고 제6데이터 위치로부터 검색된 제6데이터 워드의 저장을 시작하며, (4) 제2EDRR(226a)은 제1EDRR(224b)에 저장되어 있던 제5데이터 워드를 저장하고, (5) 프로세서(156)는 제2EDRR(226a)에 저장되어 있는 제4데이터 워드의 검색을 종료한다. 따라서, (상태 머신 블록(194)이 프로세서(156)가 외부 데이터 레지스터(226a)를 액세스하고 있음을 검출한 후) 제8클럭 사이클의 종료에 의해, EMAU(144)는 제4데이터 워드를 프로세서(156)에 공급하고 그리고 2개의 추가 데이터 워드(즉, 데이터 워드 5 및 6)를 프리페치하고 외부 데이터 판독 레지스터(226)에 저장한다.During the seventh clock cycle, (1) the
신호 액세스 판독 동작 동안에 공유 버스 및 전용 버스 인터페이스(190) 동작은, 신호 액세스 판독 동작 동안에 (1)전용 주소 버스는 (제2, 제3 및 제4클럭 사이클 동안에) 단지 3개의 주소를 전송하고, (2) 제1EDRR(226b)은 (제2, 제3, 제4 및 제5클럭 사이클 동안에) 단지 3개의 데이터 워드를 래치하며, (3) 제2EDRR(226a)은 (제3 및 제4클럭 사이클 동안에) 단지 2개의 데이터 워드를 래치하고, (4) 프로세서(156)는 (제3 및 제4 클럭 사이클 동안에) 외부 데이터 버스(180)를 따라 단지 1개의 데이터 워드를 판독한다는 점을 제외하고는, 앞서 설명한 블록 판독동작과 매우 유사하다. 또한, 신호 액세스 판독 동작 동안에, 카운터(244)는 동일한 부분 주소를 3회 발생하므로, 전용 버스 주소 버스(210p)는 동일한 주소를 3회 전송하며, 외부 데이터 판독 레지스터(226a)는 동일한 데이터 워드를 3회 저장하고, 그리고 외부 데이터 판독 레지스터(226b)는 동일한 데이터 워드를 2회 저장한다.During the signal access read operation, the shared bus and
한편, 프로세서(156)가 기록 신호를 판독/기록 버스 라인(186)상에 공급하고, 외부 I/O 액세스 신호와 외부 데이터 레지스터(226a 또는 228)를 선택하는 EMAU 레지스터 신호를 공급하면, 버스 인터페이스(190)는 프로세서(156)가 외부 데이터 기록 레지스터(223)를 통해 출력(즉, 기록) 동작을 개시할 수 있도록 해 준다. 특히, 앞에서 언급한 바와같이, 제2제어 워드의 제16비트가 전용 버스를 통해 외부 액세스를 지시해 주면, 외부 메모리 액세스 장치(14)는 프로세서(156)가 X+Y 클럭 사이클에서 외부 기록 동작을 개시할 수 있도록 해 주며, 이때, (1) X는 상기 데이터 메모리에서 액세스된 위치의 개수를 나타내고, (2) Y는 상기 EMAU를 프로그래밍하는데 필요한 클럭 사이클의 개수를 나타낸다. 또한, 제2제어 워드의 제16비트가 전용 버스를 통한 특정 데이터 메모리 뱅크에 대한 외부 기록 동작을 지시해 주면, 외부 메모리 액세스 장치(140)는 프로세서가 X+Y+W 클럭 사이클에서 상기 동작을 행할 수 있도록 해 주며, 이때, W는 중재기가 상기 공유 버스에 대한 액세스를 승인할 때까지 상기 EMAU가 대기하는 클럭사이클의 개수를 나타낸다.On the other hand, if the
이제 ,기록 동작 동안의 공유 버스 및 전용 버스 인터페이스(190)의 동작에 대해서 전용 버스를 따라 실행되는 블록 기록 액세스 동작을 보인 도 8을 참조하여 설명한다. 이하의 설명은 공유 버스 기록의 경우에 중재기가 EMAU의 공유 버스 요구를 승인할 때까지 W개의 클럭사이클의 지연이 존재한다는 점을 제외하고는, 공유 버스를 따라 실행되는 블록 기록 액세스에 마찬가지로 적용될 수 있다.The operation of the shared bus and
상태 머신 블록(194)은 프로세서(156)가 외부 데이터 기록 레지스터(228)로부터 외부 기록 동작을 요구하는 때를 결정하기 위해, 외부 I/O 버스(182), EMAU 레지스터 버스(184), 및 판독/기록 버스(186)를 포함하고 있다. (외부 I/O 액세스 신호, 기록 신호, 외부 데이터 레지스터(226a 또는 228)를 선택하는 EMAU 레지스터 신호에 의해 나타내어지는) 상기 요구의 검출시에, 상태 머신 블록(194)은 프로세서가 외부 데이터 기록 레지스터(228)를 액세스하는 하는 한, 카운터 인에이블 신호를 액티브시킨다. 또한, 상태 머신 블록(194)이 외부기록을 검출하는 제1클럭 사이클의 로우 단계 동안에, 상태 머신 블록(194)은 전용 버스 기록 인에이블 신호를 액티브시키고, 그리고 이 액티브 신호를, 프로세서가 EDWR(228)과의 통신을 종료한 후 1/2클럭 사이클이 될 때까지 유지한다. 프로세서(156)가 EDWR(228)을 액세스하는 제2클럭 사이클 동안에, (1) EWAU(230)는 주소 출력 버스(236)와 전용 버스 주소 버스(210p)를 따라 제1외부 주소를 전송하고, (2) 외부 메모리 인터페이스 유닛(238)은 전용 버스 기록버스(208p)를 액티브시키고 그리고 이 액티브 신호를 프로세서가 EDWR(228)과의 통신을 종료한 후 1클럭사이클이 될 때까지 유지하며, (3) EDWR(228)은 제1데이터 워드를 전용 버스 데이터 버스(212p)를 따라 주소 지정된 데이터 뱅크측으로 전송한다. 도 8에 도시된 바와같이, 제3클럭 사이클 동안의 공유 버스 및 전용 버스 인터페이스(190)의 동작은 제2클럭 사이클 동안의 동작과 동일하다.
제4클럭 사이클 동안에, (1) 상태 머신 블록(194)은 전용 버스 기록 인에이블 신호와 카운터 인에이블 신호를 디액티브시키고, (2) EWAU(230)는 주소 출력 버스(236)와 주소 버스(210p)를 따라 제3외부 주소를 전송하며, (3) 외부 메모리 인터페이스 유닛(238)은 액티브 전용 버스 기록 신호를 유지하고, (4) EDWR(228)은 전용 버스 데이터 버스(212p)를 따라 상기 주소 지정된 데이터 위치로 제3데이터 워드를 전송한다. 따라서, 도 8에 예시된 바와같이, 본 발명의 외부 메모리 액세스 장치(140)는 프로세서(156)가 X+Y 클럭사이클에서 기록동작을 부분적으로 완료할 수 있도록 해 주며, 이때, X는 상기 데이터 메모리에서 액세스되는 위치의 개수(즉, 도 8에서 액세스된 3개의 데이터 위치)를 나타내고, 그리고 Y는 EMAU를 프로그래밍하는데 필요한 클럭사이클의 개수(즉, 도 8에 도시된 바와같이, EDRR과 EWAU를 프로그램하는데 필요한 2개의 클럭 사이클)를 나타낸다.During the fourth clock cycle, (1) the
6. 상태 머신 블록6. State machine block
도 9에는 상태 머신 블록(194)의 일실시예가 제시되어 있다. 이 블록의 기능은 (1) 상기 프로세서가 외부 I/O 액세스 버스(182), EMAU 레지스터 버스(184), 및 판독/기록 버스(186)를 통해 공유 버스 및 전용 버스 인터페이스측으로 전송하는 신호를 감시하고, (2) 공유 버스 중재기(150)가 공급한 승인 신호를 감시하며, 그리고 (3) 공유 버스 및 전용 버스 인에이블 신호, 카운터 인에이블 신호, 및 정지 프로세서 신호를 발생하며, 이들 신호는 외부 입/출력 동작동안에 공유 버스 및 전용 버스 인터페이스의 동작을 제어한다. 또한, 이전에 언급된 바와같이, 상태 머신 블록(194)은 또한 클럭 모듈(202)에 접속되어, 정지 요구신호를 수신함으로써 상기 상태 머신이 정지 프로세서 신호와 EMAU 클럭 신호를 발생할 수 있도록 해 준다.9 illustrates one embodiment of a
도 8에 도시된 바와같이, 상태 머신 블록(194)은 상태머신 제어유닛(250), 공유 버스 상태머신(252), 전용 버스 상태 머신(254), 상태머신 제어 버스(256), 및 상태머신 출력 발생 유닛(258)을 포함하고 있다. 제어 유닛(250)은 클럭버스(198)상의 클럭신호를 상태머신(252,254) 및 출력 발생 유닛(258)측으로 보낸다. 제어 유닛(250)은 디코더이며, 이 디코더는 프로세서(156)가 (외부 I/O 액세스 버스(182)상의) 외부 입/출력 액세스를 지시할 때까지, EMAU 버스(142)상의 신호가 상태 머신(252,254) 및 출력 발생기 유닛(258)측에 도달하는 것을 방지한다. 일단, 프로세서(156)가 외부 입/출력 액세스를 개시하면, 상태머신 제어유닛(250)은 ERAU(224) 또는 EWAU(230)가 제2제어 워드의 제16비트를 상태머신측에 공급하기를 기다린다. 앞서 언급한 바와같이, 상기 제16비트는 프로세서(156)가 전용 버스 또는 공유 버스를 통해 외부 액세스를 개시하고자 하는지를 상태 머신 블록(194)측에 알려 준다. 이때, 제어 유닛(250)은 프로세서(156)가 (EMAU 레지스터 버스(184)상에서) 외부 데이터 레지스터(226a 또는 228)측으로 향한 판독 또는 기록동작을 지시 해 주기를 기다린다. 이 지시의 수신시에, 제어유닛(250)은 (1) 제2제어 워드의 제16비트의 값을 기초로 상태 머신(252 또는 254)중 하나의 머신을 인에이블하고 다른 머신을 디스에이블시키고, 그리고 (2) 상태머신 출력 발생기 유닛(258)을 인에이블시킨다.As shown in FIG. 8, the
제어 유닛(250)이 특정 상태 머신을 인에이블시킨 후에, 제어 유닛(250)은 외부 I/O 액세스 버스(182), EMAU 레지스터 버스(184), 판독/기록 버스(186), 정지 요구 라인(200), 및 EMAU 제어 버스(204)의 블록 모드 라인상에 나타나는 신호를 상기 상태 머신측으로 보낸다. 또한, 제어 유닛(250)이 공유 버스 상태 머신(252)을 인에이블시키면, 제어 유닛(250)은 앞서 언급한 신호를 상기 상태 머신측으로 보낼 뿐만 아니라, (제어 버스(204)상에 나타나는)공유 버스 로크 신호와 공유 버스 승인 신호를 상기 상태 머신측으로 보낸다.After the
상기 상태 머신의 이들 입력에 의해 상태 머신의 각종 상태 천이가 행해진다. 도 9에 도시되어 있는 상태 머신 블록(194)의 실시예의 경우에, 상태 머신(252,254)은 클럭의 상승에지에서, 상태에서 상태로 천이된다. 환언하면, 각각의 상태 머신은 상기 클럭 사이클의 상승에지에서 상태 천이가 될 필요가 있는지를 결정하기 위해 자신의 입력 신호를 검토한다. 또한, 상태 머신이 인에이블되면, 이 상태 머신은 자신의 현재 특정 상태에 관련된 3 디지트 제어 코드(b2,b1,b0)를 발생하고, 이 3 비트 상태 코드를 상태 머신 출력 발생기(258)측에 공급한다. 상태 머신 출력 발생기(258)는 또한 판독/기록 버스(186), EMAU 레지스터 버스(184), EMAU 제어 버스(204), 정지 요구 버스(200), 및 클럭 버스(198)상에 나타나는 신호를 제어 버스(256)를 통해 수신한다. 이때, 상기 3 비트 상태 코드와 더불어 이들 신호는 버스 인에이블 신호, 카운터 인에이블 신호, 정지 클럭 신호, 및 공유 버스 요구 신호를 생성하기 위해 상태 머신 출력 발생기(258)를 구동한다.These inputs of the state machine cause various state transitions of the state machine. In the case of the embodiment of the state machine block 194 shown in FIG. 9, the
a. 전용 버스 상태 머신a. Dedicated Bus State Machine
프로세서(156)가 전용 버스(146)를 통한 외부 액세스를 개시하고자 함을 (제2제어워드의 제16비트를 통해) 지시하고, 외부 데이터 레지스터(226a 또는 228)를 액세스하고자 함을 지시하면, 상태 머신 제어 유닛(250)은 전용 버스 상태 머신(254)을 인에이블시키고 공유 버스 상태 머신(252)을 디스에이블시킨다.If
이제, 전용 버스 상태 머신(254)의 동작에 대해 도 10 - 도 13을 참조하여 설명한다. 도 10에는 도 9의 전용 버스 상태 머신(254)의 일실시예에 대한 상태도가 제시되어 있다. 도 11에는 전용 버스를 통한 블록 판독 액세스 동안에, 도 9의 상태 머신 블록(194)의 상태 머신 출력 발생기(258)의 일실시예의 동작에 대한 타이밍도가 제시되어 있다. 도 12에는 전용 버스를 통한 상태 머신 블록(194)의 상태 머신 출력 발생기(258)의 일실시예의 동작에 대한 타이밍도가 제시되어 있다. 도 13에는 전용 버스를 통한 기록 액세스 후의 판독동안에, 도 9의 상태 머신 블록(194)의 상태 머신 출력 발생기(258)의 일실시예의 동작에 대한 타이밍도가 제시되어 있다.The operation of the dedicated
도 10에 도시된 바와같이, 전용 버스 상태 머신(254)의 동작은 3개의 신호의 값에 의해 정의되는데, 이들 신호는 (1) 전용 버스 액세스 인에이블 신호, (2) 유효하지 않은 신호인 제2EDRR(226a)(즉, EDRR2)의 데이터의 판독, 및 (3) 정지 요구 신호이다. 상기 전용 버스 액세스 인에이블 신호는 상태 머신 제어 유닛(250)에 의해 발생된 전용 버스 상태 머신 인에이블 신호이다. 특히, 상태 머신 제어 유닛(250)은 프로세서(156)가 외부 데이터 레지스터(226a 또는 228)를 통해 그리고 전용 버스(146)를 통해 외부 판독 또는 기록 동작을 (외부 입/출력 액세스 버스(182), EMAU 레지스터 버스(184), 판독/기록 버스(186), 및 제2제어워드의 제16비트의 신호를 통해) 지시할 때 액티브 전용 버스 인에이블 신호를 발생한다.As shown in FIG. 10, the operation of the dedicated
또한, 전용 버스 상태 머신(254)의 입력 통지 논리 회로는 상기 프로세서가 단일 액세스 판독 동작을 개시할 때 유효하지 않은 신호인 제2EDRR(226a)의 데이터의 액티브 판독을 발생한다. 상기 입력 통지 논리 회로는 블록 모드 신호가 디액티브상태이고 프로세서가 EDRR(226a)의 외부 판독을 요구할 때 단일 액세스 판독 동작을 개시함을 검출한다. 또한, 전용 버스 상태 머신(254)의 입력 통지 논리 회로는 상기 프로세서가 블록 판독 동작의 초기 프리페치 판독을 개시할 것을 상기 EMAU에게 명령한 때, 유효하지 않은 신호인 제2EDRR(226a)의 데이터의 액티브 판독을 발생한다. 상기 입력 통지 논리 회로가 상기 프로세서가 ERAU(224)에 제2제어워드를 기록한 후에 프로세서(156)로부터 EDRR(226a)에 대한 판독의 요구를 검출하면, 상기 입력 통지 논리 회로는 상기 프로세서가 블록 판독 동작의 초기 판독을 개시할 것을 상기 EMAU에게 명령하였음을 검출한다.In addition, the input notification logic circuit of the dedicated
한편, 프로세서(156)가 기록 동작을 요구하면(즉, 외부 데이터 기록 레지스터(228)와 통신을 개시하고 있으면), 상기 입력 통지 논리 회로는 유효하지 않은 신호(즉, 이 신호는 "0"의 값을 가지고 있음)인 제2EDRR(226)의 데이터의 인액티브 판독을 유지하게 된다. 프로세서(156)가 중간 액세스중에 초기 블록 판독 액세스를 인터럽트한 후에 블록 판독 액세스를 재개하면, 상기 입력 통지 논리 회로는 또한 유효하지 않은 신호인 제2EDRR(226a)의 데이터의 인액티브 판독을 유지하게 된다.On the other hand, if
도 10에 또한 도시된 바와같이, 전용 버스 상태 머신(254)은 정지요구 신호와 전용 버스 액세스 인에이블 신호가 인액티브 상태에 있는 한, 아이들 상태(A)로 유지된다(즉, 순환한다). 하지만, 프로세서(156)가 외부 액세스를 개시하여, 현재 외부 데이터 레지스터(226a 또는 228)를 액세한 후에(즉, 액티브 P 버스 액세스 인에이블 신호를 발생한 후에), 전용 버스 상태 머신(254)은 상태(C) 또는 상태(F)로 천이된다.As also shown in FIG. 10, the dedicated
예컨대, (프로세서(156)가 제2EDDR(226a)로부터 단일 액세스 판독 또는 블록 판독 동작의 초기 판독을 요구하면 발생되는) 전용 버스 상태 머신(254)의 상태(A)로부터 상태(C)로의 천이에 대해, 이제 도 10, 도 11 및 도 13을 참조하여 설명한다. 이들 도면에 도시되어 있는 바와같이, 프로세서(156)가 제2EDDR(226a)로부터 초기 블록 판독을 요구하고 전용 버스 상태 머신(254)이 아이들 상태(A)에 있으면, 출력 발생기(258)는 상기 프로세서(156)가 외부 데이터 레지스터(226a 또는 228)를 액세스하고 있는 한, 카운터 인에이블 신호를 액티브시킨다. 또한, 이 초기 클럭 사이클의 로우 단계 동안에, 출력 발생기(258)는 정지 프로세서 클럭 라인(188)상에 정지 프로세서 신호를 제공하고 이 신호를 두 클럭 사이클동안 유지하며, (2) 전용 버스의 인에이블 판독 신호를 액티브시키고 이 신호를, 상기 프로세서(156)가 제2EDRR(226a)와의 통신을 종료한 후 1/2 클럭 사이클이 될 때까지 유지한다.For example, a transition from state A to state C of the dedicated bus state machine 254 (which occurs when the
다음 클럭 사이클의 상승 에지에서, 전용 버스 상태 머신(254)은 전용 버스 액세스 인에이블 신호와 EDRR2 무효 신호의 데이터의 판독이 액티브인지를 감지하며, 이에따라 상태(A)로부터 제1프리페치 상태(C)로 천이된다. 전용 버스 상태 머신(254)이 제1프리페치 상태(C)를 유지하고 있는 클럭 사이클 동안에, 상기 출력 발생기(258)는 버스 인터페이스(190)가 제1EDRR(226b)에의 제1데이터 워드의 저장을 시작할 수 있도록 전용 버스 판독 인에이블 신호를 유지한다. 다음 클럭 사이클에서, 전용 버스 상태 머신(254)은 출력 발생기(258)가 상기 프로세서(156)가 제2EDRR(226a)에 저장되어 있는 데이터의 수신을 시작할 수 있도록 해 주기 위해 정지 프로세서 신호를 디액티브시키고 있는 클럭 사이클 동안에 제2프리페치 상태(E)로 천이된다.On the rising edge of the next clock cycle, the dedicated
다음 클럭 사이클에서, 전용 버스 상태 머신(254)은 액세스 상태(F)로 천이된다. 이 상태에서, 프로세서는 동작중이며, 상태 머신(254)은 상기 프로세서가 현재 외부 데이터 레지스터(226a 또는 228)를 통해 다른 외부 판독/기록 동작을 요구하고 있는지를 결정하기 위해, 외부 입/출력 액세스 버스(182), EMAU 레지스터 버스(184), 및 판독/기록 버스(186)상의 신호를 감시한다. 현재 프로세서 명령이 외부 데이터 레지스터(226a 또는 228)를 통한 외부 액세스명령이 아니면(즉, 전용 버스 액세스 인에이블 신호가 액티브상태가 아니면), 상기 전용 버스 상태 머신은 아이들 상태(A)로 천이된다. 예컨대, 현재 프로세서 명령이 프로그램 ERAU(224) 또는 EWAU(230)이면, 상기 전용 버스 상태 머신은 상태(F)로부터 상태(A)로 천이되는데, 이는 (상기 프로세서가 더 이상 EDRR(226a 또는 EDWR(228)를 액세스하지 않음에 따라) 상기 전용 버스 액세스 인에이블 신호가 디액티브되기 때문이다.In the next clock cycle, the dedicated
한편, 현재 명령이 제2외부 데이터 레지스터(226a)에 대한 다른 액세스명령(즉, 다른 판독 액세스 명령)이면, 전용 버스 상태 머신(254)은 상태(F)를 유지하고 판독 액세스를 수행한다. 또한, 도 10 및 도 13에 도시되어 있는 바와같이, 상기 현재 명령이 외부 데이터 기록 레지스터(228)에 대한 액세스(즉, 기록 액세스)이면, 전용 버스 상태 머신(254)은 상태(F)를 유지하고 EWAU(230)의 주소를 기초로 기록 동작을 수행한다. 마지막으로, 전용 버스 액세스 인에이블 신호와 EDRR2 무효 신호의 데이터의 판독이 액티브이면(예컨대, 프로세서(156)가 어떤 데이터 워드를 프리페치하기 전에 하지만 ERAU(224)를 프로그래밍한 후에 판독 동작을 미리 인터럽트 한 후에 외부 판독을 요구하면, 상태 머신(254)은 상태(F)로부터 상태(C)로 천이된다.On the other hand, if the current instruction is another access instruction (ie, another read access instruction) to the second external data register 226a, the dedicated
한 클럭 사이클에서 상태(A)로부터 상태(F)로의 전용 버스 상태 머신(254)의 직접적인 천이(프로세서(156)가 EDWR(228)에 대한 외부 기록을 요구하고 상태 머신(254)이 상태(A)에 있거나 프로세서(156)가 이전의 블록 판독 액세스를 인터럽트한 후에 블록 판독 액세스를 재개할 때에 일어남)에 대해서 이제 도 10, 도 12, 및 도 13을 참조하여 설명한다. 이들 도면에 도시된 바와같이, 상태 머신(254)이 프로세서(156)가 EDWR(228)에 대한 외부 기록을 요구한 상태(A)에서 아이들 상태이고, 출력 발생기(258)는 상기 프로세서가 외부 데이터 레지스터(226a 또는 228)를 액세스하는 한, 카운터 인에이블 신호를 액티브시킨다. 또한, 이 초기 클럭 사이클의 로우 단계 동안에, 출력 발생기(258)는 인에이블 기록 신호를 액티브시키고, 이 신호를, 프로세서가 EDWR(228)과의 통신을 종료한 후 1/2 클럭 사이클이 될 때까지 유지한다.Direct transition of dedicated
다음 클럭 사이클에서, 전용 버스 상태 머신(254)은 전용 버스 액세스 인에이블 신호가 액티브 상태이고(즉, "1"의 값을 가지고 있고), EDRR2 무효 신호의 데이터의 판독이 인액티브 상태인지를(즉, "0"의 값을 가지고 있는지를) 감지하며, 이에따라 액티브 상태(F)로의 천이가 행해진다. 이 상태에서, 상태 머신(254)은 프로세서가 현재 외부 데이터 레지스터(226a 또는 228)를 통해 다른 외부 판독 또는 기록 동작을 요구하고 있는지를 결정하기 위해 외부 입/출력 액세스 버스(182), EMAU 레지스터 버스(184), 및 입/출력 버스(186)상의 신호를 감시한다. 현재 프로세서 명령이 외부 데이터 레지스터(226a 또는 228)를 통한 외부 액세스 명령이 아니면(즉, 전용 버스 액세스 인에이블 신호가 액티브상태가 아니면), 상기 전용 버스 상태 머신은 아이들 상태(A)로 천이된다. 한편, 상기 현재 명령이 외부 데이터 기록 레지스터(228)에 대한 다른 액세스명령이면(즉, 다른 기록 동작이면), 상기 전용 버스 상태 머신(254)은 상태(F)를 유지하고 상기 인에이블 신호(즉, 카운터 인에이블 신호 및 전용 버스 기록 인에이블 신호)의 발생을 유지하며, 이에따라 버스 인터페이스(190)는 기록 동작을 수행할 수 있게 된다.In the next clock cycle, the dedicated
또한, 도 10 및 도 13에 도시되어 있는 바와같이, 상기 현재 명령이 제2외부 데이터 판독 레지스터(226a)에 대한 다른 액세스 명령이면(즉, 판독 액세스이면), 전용 버스 상태 머신(254)은 상기 프로세서가 외부 데이터 레지스터(226a 또는 228)를 액세스하는 한, 여전히 액티브 카운터 인에이블 신호를 유지하게 된다. 하지만, 현재 명령의 클럭 사이클의 로우 단계 동안에, 출력 발생기(258)는 전용 버스 인에이블 기록 신호를 디액티브시키고, 전용 버스의 인에이블 판독 신호를 액티브시키며, 상기 프로세서가 제2EDRR(226a)와의 통신을 종료한 후에 1/2 클럭 사이클이 될 때까지 이 신호를 유지한다. 이때, 상기 EMAU는 다음 클럭 사이클에서 ERAU(224)의 주소를 기초로 판독 동작을 개시한다. 이 방법으로, 본 발명의 상기 외부 액세스 장치는 상기 프로세서가 새로운 주소를 ERAU(224)에 로드하지 않으면 단지 하나의 클럭 사이클에서 기록 동작에서 판독 동작으로 천이할 수 있다.10 and 13, if the current command is another access command for the second external data read register 226a (i.e., read access), then the dedicated
상태 머신(254)의 상태 천이에 관한 상기 설명에서는 정지 요구 신호가 인액티브인 것으로(즉, "0"의 값을 가지고 있는 것으로) 가정하였다. 이 정지 요구 신호가 액티브 상태로 되고 상태 머신(254)이 아이들 상태(A) 또는 액세스 상태(F)이면, 상기 상태 머신(254)은 다음 클럭 사이클의 상승에지에서 정지상태(H)로 천이한다. 상태 천이(254)는, 다음 클럭 사이클에서 상태(G) 또는 상태(C)로의 천이 이전에 상기 클럭 모듈이 상기 정지 요구 신호를 제거할 때까지 상태(H)를 유지한다. 상기 정지 요구 신호가 인액티브 상태로 되고 프로세서(156)가 제2EDRR(226a)로부터 내부 액세스 판독을 요구하면(즉, P 버스 액세스 인에이블 신호와 EDRR2 무효 신호의 데이터의 판독이 액티브 상태이고 정지 요구 신호가 인액티브상태이면), 상태 머신(254)은 상태(C)로 천이된다.In the above description regarding the state transition of the
한편, 프로세서(156)가 제2EDRR(226a)로부터의 초기 외부 판독을 요구하지 않으면, 상태 머신(254)은 다음 클럭 사이클동안에 상태(H)에서 상태(G)로 천이된다. (전체적인 정지 상태 이후에 시작 프로세서의 상태인) 상태(G)로부터, 상태 머신(254)은 아이들 상태(A) 또는 액세스 상태(F)로 천이된다. 특히, 상태 머신(254)은 전용 버스 인에이블 신호가 액티브 상태이고 EDRR(226a)의 데이터의 판독이 인액티브 상태이면 상태(G)로부터 상태(F)로 천이된다. 한편, 상태 머신(254)은 상기 전용 버스 인에이블 신호가 인액티브 상태이면 상태(G)로부터 상태(A)로 천이된다.On the other hand, if
이제, 상기 프로세서가 외부 액세스를 인터럽트한 이후의 전용 버스 상태 머신(254)의 동작에 대해 설명한다. 상기 프로세서가 외부 블록 판독 동작을 인터럽트시켜야 하고, 하지만 나중에 이 동작을 재개하고하는 경우에, 상기 프로세서는 먼저 제2외부 데이터 판독 레지스터(226a)에 포함되어 있는 데이터의 주소를 저장해야 한다. 인터럽트 동안에, 상기 프로세서가 다른 판독 동작을 위해 외부 데이터 판독 레지스터를 사용하고 있으면, 상기 프로세서는 EDRR(226a)의 원래 데이터의 저장된 주소를, 원래의 블록 판독 동작을 재개하기 전에 외부 판독 주소 유닛(224)측으로 재프로그래밍해야 한다. 한편, 인터럽트 중에, 프로세서가 ERAU(224)의 추가적인 프로그래밍없이 EDRR(226a)를 간단히 다시 액세스함으로써 원래의 블록 판독 동작을 재개할 수 있다.The operation of the dedicated
한편, 나중에 외부 블록 기록 동작을 재개하기 위해, 상기 프로세서가 중간 액세스에서 외부 블록 기록 동작을 인터럽트시켜야 한다면, 상기 프로세서는 먼저 EWAU(230)에 저장되어 있는 주소를 저장해야 한다. 상기 인터럽트 이후에, 상기 프로세서는, 인터럽트 동안에 자신이 다른 외부 기록 동작을 수행하는 경우에는, EWAU의 저장된 원래 값을 다시 상기 주소 유닛측으로 다시 로드해야 한다. 한편, 인터럽트 동안에 상기 프로세서가 다른 기록 동작을 수행하지 않으면, 이 인터럽트 이후에, 상기 프로세서는 EDWR(228)을 액세스함으로써 그 블록 기록 액세스를 간단히 재개할 수 있다.On the other hand, if the processor must interrupt the external block write operation in the intermediate access in order to resume the external block write operation later, the processor must first store the address stored in the
마지막으로, 전용 버스 상태 머신(254)은 두 프리페치 사이클로 인한 지연없이 동일한 단일 액세스 판독 동작을 반복적으로 프로세서(156)가 수행할 수 있도록 하는 방법으로 설계되어 있음에 주의하자. 특히, 프로세서(156)가 블록 모드 신호를 디액티브함으로서 단일 액세스 판독 동작을 요구할 때마다, 상기 프로세서는 그 요구된 데이터 워드를 수신하기 전에 3개의 클럭 사이클 동안 대기해야 한다. 상기 프로세서가 다음 클럭 사이클에서 동일한 데이터 워드가 자신에게 공급될 것을 요구하는 상황에서도 상기 지연은 변하지 않고 유지되는데, 이는 상기 프로세서가 블록 모드 신호를 디액티브함으로써 단일 판독 동작을 요구할 때마다, 상기 프로세서가 전용 버스 상태 머신(254)을 상태(A)로부터 프리페치 상태(C,E)측으로 천이시키기 때문이다. 하지만, 상기 프로세서는 또한 하나의 루프 크기를 가진 블록 판독 동작을 지시함으로써 동일한 데이터 워드를 반복적으로 액세스할 수 있으며(즉, 동일한 단일 판독 동작을 반복적으로 수행할 수 있으며). 이에따라 하나의 2클럭 사이클 프리 페치 단계 및 단지 하나의 2 클럭 사이클 프리 페치 단계 이후에 데이터 워드를 얻기 위해 상기 프로세서는 EDRR(226a)을 액세스할 수 있다.Finally, note that the dedicated
b. 공유 버스 상태 머신b. Shared bus state machine
프로세서(156)가 공유 버스(148)를 통해 외부 액세스를 개시하고자 함을 (제2제어워드의 제16비트를 통해) 지시하고 그리고 외부 데이터 레지스터(226a 또는 228)를 액세스하고 함을 (상기 EMAU 레지스터 버스상에서) 지시하면, 상태 머신 블록 제어 유닛(250)은 공유 및 전용 버스 인터페이스(190) 상태 머신(252)를 인에이블시키고 전용 버스 상태 머신(254)을 디스에이블시킨다.The
이제, 공유 버스 상태 머신(252)의 동작에 대해 도 14 - 도 18을 참조하여 섦명한다. 도 14에는 도 9의 공유 버스 상태 머신(252)의 일실시예의 상태도가 제시되어 있다. 도 15에는 공유 버스를 통한 블록 판독 액세스 동안에, 도 9의 상태 머신 블록(194)의 상태 머신 출력 발생기(258)의 일실시예의 동작에 대한 타이밍도가 제시되어 있다. 도 16에는 공유 버스를 통한 상태 머신 블록(194)의 상태 머신 출력 발생기(258)의 일실시예의 동작에 대한 타이밍도가 제시되어 있다. 도 17에는 공유 버스를 통한 기록 액세스 후의 판독 동안에, 도 9의 상태 머신 블록(194)의 상태 머신 출력 발생기(258)의 일실시예의 동작에 대한 타이밍도가 제시되어 있다. 도 18에는 공유 버스 승인 신호가 상기 공유 버스를 로크하지 않은 때에 공유 버스를 통한 기록 액세스 후의 판독 동안에, 도 9의 상태 머신 블록(194)의 상태 머신 출력 발생기(258)의 일실시예의 동작에 대한 타이밍도가 제시되어 있다.The operation of the shared
도 14에 도시된 바와같이, 공유 버스 상태 머신(252)의 동작은 5개의 신호의 값에 의해 정의되는데, 이들 신호는 (1) 공유 버스 액세스 인에이블 신호, (2) 유효하지 않은 신호인 제2EDRR(226a)의 데이터의 판독, 및 (3) 정지 요구 신호, (4) 공유 버스 승인 신호, 및 (5) 로크 공유 버스 신호이다. 상기 공유 버스 액세스 인에이블 신호는 상태 머신 제어 유닛(250)에 의해 발생된 전용 버스 상태 머신 인에이블 신호이다. 특히, 제어 유닛(250)은 프로세서(156)가 외부 데이터 레지스터(226a 또는 228)를 통해 그리고 공유 버스(148)를 통해 외부 판독 또는 기록 동작을 (외부 입/출력 액세스 버스(182), EMAU 레지스터 버스(184), 판독/기록 버스(186), 및 제2제어워드의 제16비트의 신호를 통해) 지시할 때 액티브 액세스 인에이블 신호를 발생한다.As shown in Figure 14, the operation of shared
또한, 공유 버스 상태 머신(252)의 입력 통지 논리 회로는 상기 프로세서가 단일 액세스 판독 동작을 개시할 때 유효하지 않은 신호인 제2EDRR(226a)의 데이터의 액티브 판독을 발생한다. 상기 입력 통지 논리 회로는 블록 모드 신호가 디액티브상태이고 프로세서가 EDRR(226a)의 외부 판독을 요구할 때 단일 액세스 판독 동작을 개시함을 검출한다. 또한, 공유 버스 상태 머신(252)의 입력 통지 논리 회로는 상기 프로세서가 블록 판독 동작의 초기 프리페치 판독을 개시할 것을 상기 EMAU에게 명령한 때, 유효하지 않은 신호인 제2EDRR(226a)의 데이터의 액티브 판독을 발생한다. 상기 입력 통지 논리 회로가 상기 프로세서가 ERAU(224)에 제2제어 워드를 기록한 후에 프로세서(156)로부터 EDRR(226a)에 대한 판독의 요구를 검출하면, 상기 입력 통지 논리 회로는 상기 프로세서가 블록 판독 동작의 초기 판독을 개시할 것을 상기 EMAU에게 명령함을 검출한다.In addition, the input notification logic circuit of the shared
한편, 프로세서(156)가 기록 동작을 요구하면(즉, 외부 데이터 기록 레지스터(228)와 통신을 개시하고 있으면), 상기 입력 통지 논리 회로는 유효하지 않은 신호(즉, 이 신호는 "0"의 값을 가지고 있음)인 제2EDRR(226)의 데이터의 인액티브 판독을 유지하게 된다. 프로세서(156)가 중간 액세스중에 초기 블록 판독 액세스를 인터럽트한 후에 블록 판독 액세스를 재개하면, 상기 입력 통지 논리 회로는 또한 유효하지 않은 신호인 제2EDRR(226a)의 데이터의 인액티브 판독을 유지하게 된다.On the other hand, if
도 14에 또한 도시된 바와같이, 공유 버스 상태 머신(252)은 정지요구 신호와 전용 버스 액세스 인에이블 신호가 인액티브 상태에 있는 한, 아일들 상태(A)로 유지된다(즉, 순환한다). 하지만, 프로세서(156)가 외부 액세스를 개시하였고, 현재는 외부 데이터 레지스터(226a 또는 228)를 액세하고 있음을 감지한 후에 (즉, 액티브 P 버스 액세스 인에이블 신호를 발생한 후에), 출력 발생기(258)는 프로세서 클럭을 정지시킨다. 특히, 프로세서(156)가 초기 외부 액세스를 요구하였고 현재는 외부 데이터 레지스터(226a 또는 228)를 액세스하고 있고 공유 버스 상태 머신(252)이 아이들 상태(A)임을 출력 발생기(258)가 감지하면, 출력 발생기(258)는 상기 초기 감지 클럭 사이클의 로우 단계 동안에 정지 프로세서 라인(188)상의 정지 프로세서 신호를 액티브시킨다.As also shown in FIG. 14, shared
다음 클럭 사이클의 상승에지에서, 공유 버스 상태 머신(252)은 요구 상태(B)로 천이하고 (공유 버스에 대한 허가를 얻기 위해 중재기(150)측에 공급하는)공유 버스 요구 신호를 액티브시킨다. 이때, 공유 버스 상태 머신은 중재기(150)가 공유 버스에 대한 액세스, 즉 EMAU에 대한 액세스를 승인할 때까지 상기 상태를 유지한다. 중재기가 EMAU의 공유 버스 요구를 승인한 후에(즉, 공유 버스 상태 머신(252)이 액티브 공유 버스 승인 신호를 수신한 후에), 공유 버스 상태 머신(252)은 다른 하나의 전체 클럭 사이클 동안 상태(B)를 유지한다. 상태(B)의 이 최종 클럭 사이클동안에, 출력 발생기(258)는 카운터 인에이블 신호를 액티브시킨다. 이 최종 상태(B) 클럭 사이클 이후의 클럭 사이클의 상승 에지에서, 상태 머신(252)은 제2EDRR(226a)의 유효하지 않은 신호의 데이터의 판독의 값을 기초로 상태(C) 또는 상태(D)로 천이된다.On the rising edge of the next clock cycle, the shared
예컨대, 이제, (프로세서(156)가 제2EDDR(226a)로부터 단일 액세스 판독 또는 블록 판독 동작의 초기 판독을 요구하면 발생되는) 공유 상태 머신(252)의 상태(B)로부터 상태(C)로의 천이에 대해 도 14, 도 15 및 도 17을 참조하여 설명한다. 이들 도면에 도시되어 있는 바와같이, 프로세서(156)가 제2EDDR(226a)로부터 초기 블록 판독을 요구하면, (1) 출력 발생기(258)는 최종 상태(B) 클럭 사이클의 로우 단계 동안에 공유 버스 판독 인에이블 신호를 액티브시키고, (2) 공유 버스 상태 머신(252)은 상기 최종 상태(B) 클럭 사이클 이후의 클럭 사이클의 상승에지에서, 요구 상태(B)로부터 제1프리페치 상태(C)로 천이된다. 고융 버스 상태 머신(252)이 제1프리페치 상태(C)를 유지하고 있는 클럭 사이클 동안에, 출력 발생기(258)는 버스 인터페이스(190)가 제1EDRR(226b)에 제1데이터 워드를 저장하기 시작할 수 있도록 하기 위해 공유 버스 판독 인에이블 신호를 유지한다.For example, now transition from state B to state C of shared state machine 252 (which occurs when
다음 클럭 사이클의 상승 에지에서, 프로세서(156)가 제2EDRR(126a)에 저장된 데이터의 수신을 시작할 수 있도록, 출력 발생기(258)가 상기 정지 프로세서 신호를 디액티브시킨 클럭 사이클 동안에, 공유 버스 상태 머신(252)은 제2프리페치 상태(E)로 천이된다. 다음 클럭 사이클 동안에, 공유 버스 상태 머신(252)은 액세스 상태(F)로 이동한다. 이 상태에서, 프로세서는 동작중이고, 상태 머신(252)은 프로세서가 현재 외부 데이터 레지스터(226a 또는 228)를 통해 다른 외부 판독/기록 동작을 요구하고 있는지를 결정하기 위해, 외부 입/출력 액세스 버스(182), EMAU 레지스터 버스(184), 및 판독/기록 버스(186)의 신호를 감시한다. 현재 프로세서 명령이 외부 데이터 레지스터(226a 또는 228)를 통한 외부 액세스 명령이 아니면(즉, 전용 버스 액세스 인에이블 신호가 액티브상태가 아니면), 상기 공유 버스 상태 머신은 아이들 상태(A)로 천이된다. 예컨대, 현재 프로세서 명령이 프로그램 ERAU(224) 또는 EWAU(230)이면, 상기 공유 버스 상태 머신은 상태(F)로부터 상태(A)로 천이되는데, 이는 (상기 프로세서가 더 이상 EDRR(226a 또는 EDWR(228)를 액세스하지 않음에 따라) 상기 공유 버스 액세스 인에이블 신호가 디액티브되기 때문이다.On the rising edge of the next clock cycle, the shared bus state machine during the clock cycle in which the
한편, 상기 현재 명령이 제2외부 데이터 레지스터(226a)에 대한 다른 액세스(즉, 다른 판독 액세스) 명령이면, 공유 버스 상태 머신(252)은 상태(F)를 유지하고 판독 액세스를 수행한다. 또한, 도 14 및 도 17에 도시되어 있는 바와같이, 상기 현재 명령이 외부 데이터 기록 레지스터(228)에 대한 액세스(즉, 기록 액세스) 명령이면, 전용 버스 상태 머신(254)은 상태(F)를 유지하고 EWAU(230)의 주소를 기초로 기록 동작을 수행한다.On the other hand, if the current command is another access (ie, another read access) command to the second external data register 226a, the shared
(프로세서(156)가 EDWR(228)에 대한 외부 기록을 요구하고 상태 머신(254)이 상태(A)에 있거나 프로세서(156)가 이전의 블록 판독 액세스를 인터럽트한 후에 블록 판독 액세스를 재개할 때에 일어나는) 상태(B)로부터 상태(D)로의 공유 버스 상태 머신(252)의 천이에 대해서 이제 도 14, 도 16, 및 도 17을 참조하여 설명한다. 이들 도면에 도시된 바와같이, (상태 머신(254)이 상태(A)에서 아이들 상태인 동안에) 프로세서(156)가 EDWR(228)에 대한 외부 기록을 요구하면, 공유 버스 상태 머신(252)은 이 최종 상태(B) 클럭 사이클 이후의 클럭 사이클의 상승에지에서 요구 상태(B)에서 개시 상태(D)로 천이된다. 공유 버스 상태 머신(252)는 시작 상태(D)를 유지하고 있는 클럭 사이클의 로우 단계 동안에, 출력 발생기(258)는 (1) 공유 버스 기록 인에이블 신호를 액티브시키고, 프로세서 EDWR(228)와 통신을 종료한 후에 1/2 클럭 사이클이 될 때까지 상기 신호를 액티브로 유지하며, 그리고 (2) 상기 정지 프로세서 신호를 디액티브시킴으로써 상기 프로세서 클럭을 시작한다. 또한, 공유 버스 상태 머신(252)이 시작 상태(D)를 유지하고 있는 클럭 사이클동안에, 출력 발생기(258)는 카운터 인에이블 신호를 디액티브시킨다.(When
다음 클럭 사이클에서, 공유 버스 상태 머신(252)은 상태(F)를 천이되고, 출력 발생기(258)는 카운터 인에이블 신호를 다시 액티브시키고, 상기 프로세서가 EDWR(228)와의 통신을 정지할 때까지 이 신호를 액티브상태로 유지한다.In the next clock cycle, shared
이 상태에서, 상태 머신(252)은 프로세서가 현재 외부 데이터 레지스터(226a 또는 228)를 통해 다른 외부 판독 또는 기록 동작을 요구하고 있는지를 결정하기 위해, 외부 입/출력 액세스 버스(182), EMAU 레지스터 버스(184), 및 입/출력 버스(186)상의 신호를 감시한다. 현재 프로세서 명령이 외부 데이터 레지스터(226a 또는 228)를 통한 외부 액세스 명령이 아니면(즉, 전용 버스 액세스 인에이블 신호가 액티브상태 명령이 아니면), 상기 전용 버스 상태 머신은 아이들 상태(A)로 천이된다. 한편, 상기 현재 명령이 외부 데이터 기록 레지스터(228)에 대한 다른 액세스명령이면(즉, 다른 기록 동작명령이면), 공유 버스 상태 머신(252)은 상태(F)를 유지하고 상기 인에이블 신호(즉, 카운터 인에이블 신호 및 공유 버스 기록 인에이블 신호)의 발생을 유지하며, 이에따라 버스 인터페이스(190)는 기록 동작을 수행할 수 있게 된다.In this state, the
또한, 도 14 및 도 17에 도시되어 있는 바와같이, 상기 현재 명령이 제2외부 데이터 판독 레지스터(226a)이면(즉, 판독 액세스이면), 공유 버스 상태 머신(252)은 상기 프로세서가 외부 데이터 레지스터(226a 또는 228)를 액세스하는 한, 여전히 액티브 카운터 인에이블 신호를 유지하게 된다. 하지만, 현재 명령의 클럭 사이클 동안 로우 단계 동안에, 출력 발생기(258)는 전용 버스 인에이블 기록 신호를 디액티브시키며, 반면에 전용 버스의 인에이블 판독 신호가 액티브되고, 상기 프로세서가 제2EDRR(226a)와의 통신을 종료한 후에 1/2 클럭 사이클이 될 때까지 이 신호를 유지한다. 이때, 상기 EMAU는 다음 클럭 사이클에서 ERAU(224)의 주소를 기초로 판독 동작을 개시한다. 이 방법으로, 본 발명의 상기 외부 액세스 장치는 상기 프로세서가 새로운 주소를 ERAU(224)에 로딩하지 않으면 단지 하나의 클럭 사이클에서 기록 동작에서 판독 동작으로 천이할 수 있다.14 and 17, if the current instruction is a second external data read register 226a (i.e., a read access), shared
상기 프로세서가 블록 동작을 인터럽트를 한 때의 공유 버스 상태 머신(252)의 동작은 그러한 인터럽트 동안에 전용 버스 상태 머신(254)의 동작과 유사하다. 또한, 상태 머신(252)의 상태 천이의 상기 설명에서 (1) 정지 요구 신호는 인액티브인 것으로, 그리고 (2) 상기 중재기는 외부 액세스 중에 상기 EMAU에 대한 상기 승인 신호를 제거하지 않는 것으로 가정하였다. 이들 두 가정이 언제나 정확한 것은 아니므로, 상태 머신(252)의 동작에 대한 설명은 상기 정지 요구 신호가 액티브상태이거나 상기 중재기가 외부 액세스중에 상기 승인 신호를 제거하는 경우에만 필요하다. 상기 정지 요구신호가 액티브 상태로 되고 상태 머신(252)이 아이들 상태(A) 또는 액세스 상태(F)이면, 상기 상태 머신(252)은 다음 클럭 사이클의 상승에지상에서 정지상태(H)로 천이한다. 상태 천이(252)는, 다음 클럭 사이클에서 상태(G) 또는 상태(B)로의 천이 이전에 상기 클럭 모듈이 상기 정지 요구 신호를 제거할 때까지 상태(H)를 유지한다. 상기 정지 요구 신호가 인액티브상태로 되고 상기 공유 버스 액세스 인에이블 신호가 액티브되면, 상태 머신(252)은 상태(B)로 천이된다. 한편, 상기 공유 버스 액세스 인에이블 신호가 액티브 상태이면, 상기 정지 요구 신호가 제거될 때 상태 머신(252)은 상태(H)로부터 상태(G)로 천이된다. 상태(G)로부터, 상태 머신(252)은 다음 클럭 사이클의 상승 에지에서 아이들 상태(A)로 천이된다.The operation of shared
도 18에는 상기 공유 승인 신호가 제거되고 상기 프로세서가 상기 공유 버스를 로크시키지 않은 기록 액세스 동안에, 출력 발생기(258)의 일실시예의 동작에 대한 타이밍도가 제시되어 있다. 이 도면에 도시된 바와같이, 상기 중재기가 그 공유 버스 승인 신호를 제거하고 공유 버스 상태 머신이 액세스 상태(F)이고 프로세서(156)가 외부 액세스를 요구하고 있으면, 공유 버스 상태 머신(252)은 프로세서 클럭을 정지시키고, 상기 공유 버스 요구를 로우로 풀다운시키며, 아이들 상태(A)로 천이된 후 상태(B)를 요구한다. 일단, 상기 중재기가 상기 EMAU의 공유 버스 승인 신호로 복귀하면, 공유 버스 상태 머신은 앞서 언급한 기준을 기초로 상태(B)로부터 상태(C 또는 D)로 천이된다.18 shows a timing diagram for the operation of one embodiment of an
공유 버스(148)가 로크되고(즉, 제1제어워드의 제12비트와 제2제어워드의 제16비트가 세트되고), EMAU가 공유 버스 액세를 시작하면, 공유 버스 상태 머신(252)은 상기 공유 버스 승인을 거부하더라도 상기 요구를 로우로 풀다운시키지 않는다(즉, 공유 버브 상태 머신(252)은 상태(F)를 유지하거나 상태(C)로, 다음에 상태(E)로 천이되게 된다. 공유 버스 상태 머신(252)은 상기 프로세서가 제12비트를 클리어하면 그 요구를 로우로 풀다운시킬 뿐이다. 따라서, 상태 머신(252)을 상태(F)로 함으로써 그리고 상기 공유 버스를 로크함으로써, 프로세서(156)는 다중에 (1) 중재기의 허가를 구하지 않고 외부 기록 동작, 또는 (2) 중재기의 허가를 구하지 않고 외부 판독 동작(이 동작은 도 14에서 상태(F)로부터 상태(C)로의 천이로서 도시되어 있음)을 시작할 수 있다.When the shared
따라서, 본 발명의 외부 메모리 액세스 장치(140)는 다음과 같은 여러 이유로 인해 프로세서의 데이터 액세스 시간을 줄인다. 첫째로, 프로그램 메모리와 데이터 메모리를 분리함으로써, 프로세서(156)의 데이터 액세스 시간은 프로세서(156)와 프로그램 메모리(160)간의 통신에 영향을 미치지 않는다. 둘째로 데이터 워드가 판독 동작동안에 상기 프로세서를 위해 프리페치되므로, 상기 데이터 메모리 뱅크가 데이터 워드를 공급할 때까지 상기 프로세서는 아이들 상태로 대기할 필요는 없으며, 오히려 이전의 데이터 워드를 디코딩 및 실행하는 동안에 상기 EMAU가 다음의 데이터 워드를 프리페치하도록 할 수 있다. 셋째로, 상기 EMAU가 상기 데이터 메모리 뱅크를 액세스하기 위해 높은 용량성 버스를 구동하지 말아야 하므로, 상기 액세스 시간이 줄어든다. 넷째로, 상기 데이터 액세스 시간이 또한 최소화되는데, 이는 상기 컴퓨터 시스템의 다른 구성요소가 상기 데이터 뱅크를 액세스할 수 있도록 상기 데이터 액세스를 종료할 필요는 없으며, 오히려 상기 전용 버스를 통해 데이터 뱅크를 액세스할 수 있고 이에따라 다른 구성요소는 상기 공유 버스를 통해 다른 데이터 뱅크를 액세스할 수 있다.Accordingly, the external
마지막으로, 본 발명의 외부 메모리 액세스 장치는 상기 프로세서가 전용 버스를 통해 특정 데이터 뱅크를 액세스할 수 있도록 해 주고 DMA(152)가 상기 공유 버스를 통해 다른 메모리 뱅크를 리프레시할 수 있도록 해 줌에 따라 매우 적은 메모리 용량이 필요하기 때문에 유리하다.Finally, the external memory access device of the present invention allows the processor to access a particular data bank through a dedicated bus and
Claims (18)
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US35317294A | 1994-12-08 | 1994-12-08 | |
US08/353,172 | 1994-12-08 | ||
US8/353,172 | 1994-12-08 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR980700612A KR980700612A (en) | 1998-03-30 |
KR100255551B1 true KR100255551B1 (en) | 2000-05-01 |
Family
ID=23388038
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019970703837A KR100255551B1 (en) | 1994-12-08 | 1995-12-06 | A method and an apparatus for enabling a processor to access an external component through a private bus or a shared bus |
Country Status (8)
Country | Link |
---|---|
US (1) | US5838931A (en) |
EP (1) | EP0796467B1 (en) |
KR (1) | KR100255551B1 (en) |
AU (1) | AU4510696A (en) |
BR (1) | BR9509870A (en) |
DE (1) | DE69529999D1 (en) |
HK (1) | HK1003397A1 (en) |
WO (1) | WO1996018153A1 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20170078953A (en) * | 2015-12-29 | 2017-07-10 | 삼성전자주식회사 | Semiconductor device including a plurality of circuits and bud interconnecting the plurality of circuits and operating method of semiconductor device |
Families Citing this family (44)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6032271A (en) | 1996-06-05 | 2000-02-29 | Compaq Computer Corporation | Method and apparatus for identifying faulty devices in a computer system |
US6662216B1 (en) * | 1997-04-14 | 2003-12-09 | International Business Machines Corporation | Fixed bus tags for SMP buses |
FR2773025B1 (en) * | 1997-12-24 | 2000-01-14 | Schlumberger Ind Sa | SYSTEM FOR EXCHANGING DATA BETWEEN A PORTABLE PAYMENT TERMINAL AND A FIXED BASE |
US6112258A (en) * | 1998-03-19 | 2000-08-29 | 3Com Corporation | Multi-cycle I/O ASIC communication system having an arbiter circuit capable of updating address table associated with each I/O ASIC on bus |
FR2797969A1 (en) * | 1999-08-31 | 2001-03-02 | Koninkl Philips Electronics Nv | DEVICE WITH MULTIPLE PROCESSORS SHARING A COLLECTIVE MEMORY |
US6408376B1 (en) | 1999-10-25 | 2002-06-18 | Intel Corporation | Method and apparatus for instruction set architecture to perform primary and shadow digital signal processing sub-instructions simultaneously |
US6557096B1 (en) | 1999-10-25 | 2003-04-29 | Intel Corporation | Processors with data typer and aligner selectively coupling data bits of data buses to adder and multiplier functional blocks to execute instructions with flexible data types |
US6832306B1 (en) | 1999-10-25 | 2004-12-14 | Intel Corporation | Method and apparatus for a unified RISC/DSP pipeline controller for both reduced instruction set computer (RISC) control instructions and digital signal processing (DSP) instructions |
US6535962B1 (en) * | 1999-11-08 | 2003-03-18 | International Business Machines Corporation | System and method for prefetching data using a hardware prefetch mechanism |
US6535939B1 (en) | 1999-11-09 | 2003-03-18 | International Business Machines Corporation | Dynamically configurable memory bus and scalability ports via hardware monitored bus utilizations |
US6581115B1 (en) * | 1999-11-09 | 2003-06-17 | International Business Machines Corporation | Data processing system with configurable memory bus and scalability ports |
US6732203B2 (en) | 2000-01-31 | 2004-05-04 | Intel Corporation | Selectively multiplexing memory coupling global bus data bits to narrower functional unit coupling local bus |
US6675253B1 (en) * | 2000-04-04 | 2004-01-06 | Hewlett-Packard Development Company, L.P. | Dynamic routing of data across multiple data paths from a source controller to a destination controller |
WO2002019098A1 (en) * | 2000-08-30 | 2002-03-07 | Intel Corporation | Method and apparatus for a unified risc/dsp pipeline controller for both reduced instruction set computer (risc) control instructions and digital signal processing (dsp) instructions |
US7003093B2 (en) * | 2000-09-08 | 2006-02-21 | Intel Corporation | Tone detection for integrated telecommunications processing |
US20020116186A1 (en) * | 2000-09-09 | 2002-08-22 | Adam Strauss | Voice activity detector for integrated telecommunications processing |
JP2003085127A (en) * | 2001-09-11 | 2003-03-20 | Seiko Epson Corp | Semiconductor device having dual bus, dual bus system, dual bus system having memory in common and electronic equipment using this system |
US6954873B2 (en) * | 2001-11-06 | 2005-10-11 | Infineon Technologies Aktiengesellschaft | Implementation of wait-states |
US20030219113A1 (en) * | 2002-05-21 | 2003-11-27 | Bershad Neil J. | Echo canceller with double-talk and channel impulse response adaptation |
US7133972B2 (en) | 2002-06-07 | 2006-11-07 | Micron Technology, Inc. | Memory hub with internal cache and/or memory access prediction |
US7117316B2 (en) | 2002-08-05 | 2006-10-03 | Micron Technology, Inc. | Memory hub and access method having internal row caching |
US6820181B2 (en) | 2002-08-29 | 2004-11-16 | Micron Technology, Inc. | Method and system for controlling memory accesses to memory modules having a memory hub architecture |
US7120727B2 (en) | 2003-06-19 | 2006-10-10 | Micron Technology, Inc. | Reconfigurable memory module and method |
US7260685B2 (en) | 2003-06-20 | 2007-08-21 | Micron Technology, Inc. | Memory hub and access method having internal prefetch buffers |
US7107415B2 (en) | 2003-06-20 | 2006-09-12 | Micron Technology, Inc. | Posted write buffers and methods of posting write requests in memory modules |
US7120743B2 (en) | 2003-10-20 | 2006-10-10 | Micron Technology, Inc. | Arbitration system and method for memory responses in a hub-based memory system |
US7330992B2 (en) * | 2003-12-29 | 2008-02-12 | Micron Technology, Inc. | System and method for read synchronization of memory modules |
FR2870368B1 (en) * | 2004-01-27 | 2006-12-15 | Atmel Corp | METHOD AND DEVICE FOR DRIVING MULTIPLE PERIPHERALS WITH DIFFERENT CLOCK FREQUENCIES IN AN INTEGRATED CIRCUIT |
US7188219B2 (en) * | 2004-01-30 | 2007-03-06 | Micron Technology, Inc. | Buffer control system and method for a memory system having outstanding read and write request buffers |
US7337258B1 (en) * | 2004-04-12 | 2008-02-26 | Apple Inc. | Dynamically allocating devices to buses |
US7162567B2 (en) | 2004-05-14 | 2007-01-09 | Micron Technology, Inc. | Memory hub and method for memory sequencing |
US7519788B2 (en) * | 2004-06-04 | 2009-04-14 | Micron Technology, Inc. | System and method for an asynchronous data buffer having buffer write and read pointers |
JP4293141B2 (en) * | 2005-02-18 | 2009-07-08 | セイコーエプソン株式会社 | Data transfer control device and electronic device |
US20070038829A1 (en) * | 2005-08-11 | 2007-02-15 | Via Technologies, Inc. | Wait aware memory arbiter |
JP4975288B2 (en) * | 2005-09-05 | 2012-07-11 | ソニー株式会社 | Shared memory device |
US8949582B2 (en) | 2009-04-27 | 2015-02-03 | Lsi Corporation | Changing a flow identifier of a packet in a multi-thread, multi-flow network processor |
US9152564B2 (en) | 2010-05-18 | 2015-10-06 | Intel Corporation | Early cache eviction in a multi-flow network processor architecture |
US9461930B2 (en) | 2009-04-27 | 2016-10-04 | Intel Corporation | Modifying data streams without reordering in a multi-thread, multi-flow network processor |
US8949578B2 (en) | 2009-04-27 | 2015-02-03 | Lsi Corporation | Sharing of internal pipeline resources of a network processor with external devices |
US8910168B2 (en) | 2009-04-27 | 2014-12-09 | Lsi Corporation | Task backpressure and deletion in a multi-flow network processor architecture |
US8874878B2 (en) | 2010-05-18 | 2014-10-28 | Lsi Corporation | Thread synchronization in a multi-thread, multi-flow network communications processor architecture |
US8873550B2 (en) | 2010-05-18 | 2014-10-28 | Lsi Corporation | Task queuing in a multi-flow network processor architecture |
US9727508B2 (en) | 2009-04-27 | 2017-08-08 | Intel Corporation | Address learning and aging for network bridging in a network processor |
TWI816032B (en) * | 2020-04-10 | 2023-09-21 | 新唐科技股份有限公司 | Multi-core processor circuit |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5086499A (en) * | 1989-05-23 | 1992-02-04 | Aeg Westinghouse Transportation Systems, Inc. | Computer network for real time control with automatic fault identification and by-pass |
US5327538A (en) * | 1990-09-11 | 1994-07-05 | Canon Kabushiki Kaisha | Method of utilizing common buses in a multiprocessor system |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH067380B2 (en) * | 1985-08-30 | 1994-01-26 | 株式会社日立製作所 | Multiprocessor system |
JP2834122B2 (en) * | 1987-07-08 | 1998-12-09 | 株式会社日立製作所 | Control device |
US5185599A (en) * | 1987-10-26 | 1993-02-09 | Tektronix, Inc. | Local display bus architecture and communications method for Raster display |
US5006961A (en) * | 1988-04-25 | 1991-04-09 | Catene Systems Corporation | Segmented backplane for multiple microprocessing modules |
US5293586A (en) * | 1988-09-30 | 1994-03-08 | Hitachi, Ltd. | Data processing system for development of outline fonts |
US5168568A (en) * | 1989-02-06 | 1992-12-01 | Compaq Computer Corporation | Delaying arbitration of bus access in digital computers |
US5226153A (en) * | 1989-12-22 | 1993-07-06 | Bull Hn Information Systems Inc. | Bus monitor with time stamp means for independently capturing and correlating events |
US5359715A (en) * | 1991-09-16 | 1994-10-25 | Ncr Corporation | Architectures for computer systems having multiple processors, multiple system buses and multiple I/O buses interfaced via multiple ported interfaces |
US5398211A (en) * | 1993-10-14 | 1995-03-14 | Integrated Device Technology, Inc. | Structure and method for providing prioritized arbitration in a dual port memory |
-
1995
- 1995-12-06 AU AU45106/96A patent/AU4510696A/en not_active Abandoned
- 1995-12-06 BR BR9509870A patent/BR9509870A/en not_active IP Right Cessation
- 1995-12-06 KR KR1019970703837A patent/KR100255551B1/en not_active IP Right Cessation
- 1995-12-06 EP EP95943699A patent/EP0796467B1/en not_active Expired - Lifetime
- 1995-12-06 WO PCT/US1995/015893 patent/WO1996018153A1/en active IP Right Grant
- 1995-12-06 DE DE69529999T patent/DE69529999D1/en not_active Expired - Lifetime
-
1997
- 1997-05-09 US US08/854,158 patent/US5838931A/en not_active Expired - Lifetime
-
1998
- 1998-03-24 HK HK98102534A patent/HK1003397A1/en not_active IP Right Cessation
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5086499A (en) * | 1989-05-23 | 1992-02-04 | Aeg Westinghouse Transportation Systems, Inc. | Computer network for real time control with automatic fault identification and by-pass |
US5327538A (en) * | 1990-09-11 | 1994-07-05 | Canon Kabushiki Kaisha | Method of utilizing common buses in a multiprocessor system |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20170078953A (en) * | 2015-12-29 | 2017-07-10 | 삼성전자주식회사 | Semiconductor device including a plurality of circuits and bud interconnecting the plurality of circuits and operating method of semiconductor device |
KR102500821B1 (en) * | 2015-12-29 | 2023-02-17 | 삼성전자주식회사 | Semiconductor device including a plurality of circuits and bud interconnecting the plurality of circuits and operating method of semiconductor device |
Also Published As
Publication number | Publication date |
---|---|
KR980700612A (en) | 1998-03-30 |
US5838931A (en) | 1998-11-17 |
BR9509870A (en) | 1997-11-25 |
EP0796467A4 (en) | 2001-09-12 |
WO1996018153A1 (en) | 1996-06-13 |
HK1003397A1 (en) | 1998-10-30 |
DE69529999D1 (en) | 2003-04-24 |
EP0796467B1 (en) | 2003-03-19 |
EP0796467A1 (en) | 1997-09-24 |
AU4510696A (en) | 1996-06-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100255551B1 (en) | A method and an apparatus for enabling a processor to access an external component through a private bus or a shared bus | |
US4737932A (en) | Processor | |
US4270167A (en) | Apparatus and method for cooperative and concurrent coprocessing of digital information | |
US5574868A (en) | Bus grant prediction technique for a split transaction bus in a multiprocessor computer system | |
JP3406744B2 (en) | Data processor with controlled burst memory access and method thereof | |
KR19990067846A (en) | Method and arrangement for operating a bus system | |
JPH06139189A (en) | Common bus arbitrating mechanism | |
JP2002140289A (en) | Micro-controller dma operation with adjustable word size transfer and address array/increase | |
EP1564646A2 (en) | Configurable embedded processor | |
JPH01263760A (en) | Data transfer control method and its circuit for coprocessor | |
US5630147A (en) | System management shadow port | |
JP3623379B2 (en) | Microprocessor | |
KR19990017082A (en) | Serial Parallel Cache Device | |
JPS6275860A (en) | Data transfer controller | |
JP2002163228A (en) | External bus deciding technology for multi-core dsp device | |
US7296109B1 (en) | Buffer bypass circuit for reducing latency in information transfers to a bus | |
JP2001167058A (en) | Information processor | |
US20030088717A1 (en) | Computer system with a communication bus | |
US5487157A (en) | Microprogrammed microcomputer with high-speed interrupt for DRAM refresh | |
EP1125191A1 (en) | Controlling access to a primary memory | |
KR100246864B1 (en) | A cache flush mechanism for a secondary cache memory | |
JPH06282528A (en) | Method and system for transfer of data | |
JP3422308B2 (en) | Data processing device | |
EP0811197B1 (en) | System management shadow port | |
JPH0962640A (en) | Access control method for shared memory |
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: 20130212 Year of fee payment: 14 |
|
FPAY | Annual fee payment |
Payment date: 20140203 Year of fee payment: 15 |
|
FPAY | Annual fee payment |
Payment date: 20150130 Year of fee payment: 16 |
|
EXPY | Expiration of term |