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 PDF

Info

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
Application number
KR1019970703837A
Other languages
Korean (ko)
Other versions
KR980700612A (en
Inventor
데이비드 리지놀드
파르비즈 하타미
Original Assignee
피터 엔. 데트킨
인텔 코오퍼레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 피터 엔. 데트킨, 인텔 코오퍼레이션 filed Critical 피터 엔. 데트킨
Publication of KR980700612A publication Critical patent/KR980700612A/en
Application granted granted Critical
Publication of KR100255551B1 publication Critical patent/KR100255551B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1684Details 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.

Figure pct00001
Figure pct00001

Description

프로세서가 전용 버스 또는 공유 버스를 통해 외부 구성요소를 액세스할 수 있도록 해 주는 방법 및 장치{A METHOD AND AN APPARATUS FOR ENABLING A PROCESSOR TO ACCESS AN EXTERNAL COMPONENT THROUGH A PRIVATE BUS OR A SHARED BUS}A METHOD AND AN APPARATUS FOR ENABLING A PROCESSOR TO ACCESS AN EXTERNAL COMPONENT THROUGH A PRIVATE BUS OR A SHARED BUS}

최근에, 프로세서(예컨대, 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 data memory bank 100 within the processor 102. The arithmetic logic unit (i.e., ALU) 104 can then access the data word in several clock cycles by supplying the address of the particular memory cell (which stores the data word) to the internal data memory bank. The internal data memory bank also decodes these addresses and provides the ALU with the required data words (at the supplied addresses) by driving the appropriate bit lines and sense amplifiers. However, since the space of the processor die is limited, and because the memory cell array occupies a relatively large die space, only a limited amount of data can be stored therein, and thus the ALU under this conventional data access method. The amount of data that can be accessed is limited. Thus, this conventional data access method does not sufficiently reduce the data access time, since this method allows the ALU to access only a limited amount of data. In addition, this conventional internal data access method does not provide the shortest data access time, because sometimes the ALU 104 must terminate its data access to allow other components to access the data memory. to be.

이와같이, 종래 내부 데이터 기억 방법은 데이터 액세스 시간을 충분히 줄여 주지 않으므로, 여러 가지 종래 외부 데이터 액세스 방법이 개발되어 왔다. 도 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 instruction bus 110 is used to exchange instructions and data with the processor 112. In particular, this conventional method requires three full clock cycles to access the data word, where (1) during the first clock cycle, the processor 112 receives the instruction word and (2) the second clock. During the cycle, the processor 112 decodes the instruction, and (3) during the third clock cycle, the processor 112 generates a data address and reads the data. In addition, this conventional method also does not sufficiently reduce data access time, which requires that the processor 112 often terminate its data access to allow other components of the computer to use the command bus to access the data memory. Because. For example, sometimes the processor must terminate its data access to allow external system memory to store additional information in the data memory.

도 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 separate instruction bus 120 and data bus 122 to connect the processor 124 to separate instruction memory 126 and data memory 128, respectively. However, for various reasons, this conventional external data access method also does not provide the shortest data access time. First, this conventional external data access method does not provide the shortest data access time, which means (1) making a separate data request for each individual data word on the data memory cell array 128 side, and ( 2) This is because the processor requests the processor to wait until the data memory cell array supplies the requested data. Secondly, access time is adversely affected because in order to communicate with the data memory 128, the processor 124 must drive a large capacitive data bus due to the number of components connected to it. .

셋째로, 도 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 data memory bank 128. Increase the size of the array. However, this conventional solution is not seen as an optimal solution, because the size of the data memory cell increases the cost of the computer system. Also, this conventional solution cannot be used when the size of the data memory cell array cannot be increased due to design constraints and space limitations.

본 발명은 컴퓨터 시스템 분야에 관한 것으로, 특히 프로세서가 전용 버스 또는 공유 버스를 통해 외부 구성요소를 액세스할 수 있도록 해 주는 방법 및 장치에 관한 것이다.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 processor 156 to access the N data memory banks 158. However, the external component access device of the present invention allows the processor to access any number of other external memory banks (eg, N instruction memory banks) or any number of other external components.

도 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 memory access device 140 includes an external memory access unit bus 142, an external memory access unit (EMAU) 144, a dedicated bus 146, a shared bus 148, and a shared bus. Bus arbiter 15, direct memory access unit 152, data memory bank controller 154, and N data memory banks 158. Processor 156 uses external memory access device 140 to minimize its data access time. In particular, processor 156 is a conventional processor with limited internal data storage capacity and limited addressing capability for accessing data. In one embodiment of the present invention, the processor 156 is a digital signal processor (DSP) having a RISC type structure, whereby the DSP can decode and execute an instruction word in only one clock cycle. Thus, to take advantage of this reduced instruction decode and execution time, and to further increase the instruction execution speed of the DSP, the DSP 156 uses an external memory access device 140 to minimize its data access time. . Also, program instructions are stored externally in program RAM 160 and data words are stored externally in data memory bank 158. The processor 156 uses the program bus 162 to access the program RAM 160 and the external memory access device 140 to access the N data memory banks 158.

프로세서(156)는 또한 공유 버스(148)에 접속되어 있는 수많은 외부 구성요소를 액세스하는데 EMAU 버스(142), EMAU(144), 및 공유 버스(148)를 사용한다. 상기 공유 버스에 접속되어 있는 이들 외부 구성요소의 일부 예로는 외부 프로세서, 외부 시스템 메모리, 또는 외부 직렬 포트를 들 수 있으며, 이때 이 포트는 상기 공유 버스에 접속되어 있지 않은 다른 외부 구성요소와 상기 공유 버스에 접속되어 있는 외부 구성요소와 정보를 주고 받는다. 또한, 도 4에 도시된 본 발명의 실시예에서, 프로세서(156)는 EMAU 버스(142), EMAU(144), 및 공유 버스(148)를 통해 공유 버스 중재기(150), 데이터 메모리 제어기(154), 및 직접 메모리 액세스 유닛(DMA)(152)과 통신을 한다. 공유 버스 중재기(150)는 다른 버스 마스터가 상기 공유 버스를 액세스하고 있는지를 결정함으로써, 그리고 액세스하고 있으면 액세스하고 있는 특정 버스 마스터가 상기 공유 버스에 대한 액세스를 요구하고 있는 버스 마스터보다 높은 우선권 상태를 가지고 있는지를 결정함으로써 다수의 버스 마스터(예컨대, EMAU(144)와 DMA(152))사이에 상기 공유 버스의 제어를 할당한다.The processor 156 also uses the EMAU bus 142, the EMAU 144, and the shared bus 148 to access a number of external components connected to the shared bus 148. Some examples of these external components connected to the shared bus include an external processor, external system memory, or an external serial port, where the port is shared with other external components not connected to the shared bus. Send and receive information from external components connected to the bus. In addition, in the embodiment of the present invention shown in FIG. 4, the processor 156 may share a shared bus arbiter 150, a data memory controller, via an EMAU bus 142, an EMAU 144, and a shared bus 148. 154, and a direct memory access unit (DMA) 152. Shared bus arbiter 150 determines whether another bus master is accessing the shared bus, and if so, the particular bus master being accessed has a higher priority than the bus master requesting access to the shared bus. Assigning control of the shared bus between multiple bus masters (e.g., EMAU 144 and DMA 152) by determining if there is.

잘 알려진 수많은 버스 중재기가 공유 버스 중재기(150)로서 사용될 수 있다. 예컨대, 공유 버스 중재기(150)의 일실시예는 PCI 버스를 사용하는 컴퓨터 시스템 구조에 사용되는 시스템 중재 논리 유닛이다. 이들 버스 중재기중 일부는 개별적인 요구 라인과 개별적인 승인 라인을 통해 각각의 버스 마스터에 접속되어 있다. 다른 버스 중재기가 각각의 버스 마스터의 액세스 시간을 이들 각각의 라인에 시간 다중화함으로써 공통 요구 라인과 공통 승인 라인을 통해 모든 버스 마스터에 접속되어 있다. 또 다른 중재기가 또한 모든 버스 마스터에의 접속을 위해 공통 요구 라인과 공통 승인 라인을 사용할 수도 있지만, 어떤 버스 마스터가 상기 요구 라인상에서 요구를 행하고 있는지 그리고 어떤 버스 마스터가 상기 승인 라인상에서 공유 버스 액세스를 승인하였는지를 결정하기 위해 (시간 다중화 기술을 사용하기 보다는) 상기 중재기와 버스 마스터에 디코더를 사용한다.Many well known bus arbiters may be used as the shared bus arbiter 150. For example, one embodiment of shared bus arbiter 150 is a system arbitration logic unit used in a computer system architecture using a PCI bus. Some of these bus arbiters are connected to their respective bus masters through separate request lines and separate grant lines. Another bus arbiter is connected to all bus masters through a common request line and a common grant line by time multiplexing the access times of each bus master to their respective lines. Another arbitrator may also use a common request line and a common grant line for access to all bus masters, but which bus master is making a request on the request line and which bus master has shared bus access on that grant line. A decoder is used for the arbiter and bus master (rather than using time multiplexing techniques) to determine if it is approved.

상기 요구 라인과 승인 라인을 통해 공유 버스 중재기(150)가 상기 버스 마스터에 접속되어 있는 방식에 관계없이, 본 발명의 일실시예의 경우에, 상기 중재기는 다음과 같은 방식으로 동작한다. 상기 공유 버스에 대한 액세스를 얻기 위해, 버스 마스터는 그 요구 라인상의 신호를 제1논리 상태(예컨대, "1" 논리 레벨)로 만들어야 한다. 중재기(150)가 상기 공유 버스에 대한 그리고 상기 요구 버스 마스터에 대한 액세스를 승인하고자 하는 경우에, 상기 중재기는 상기 승인 라인상의 신호를 그 버스 마스터의 제2논리 상태(예컨대, "1")로 만들어야 한다. 상기 중재기가 나중에 상기 공유 버스에 대한 특정 액세스를 종료하고자 하는 경우에, 상기 중재기는 상기 액세스하는 버스 마스터의 상기 승인라인측의 신호를 제3논리 상태(예컨대, "0")로 만들어야 하며, 이에따라 상기 액세스하는 버스 마스터는 상기 공유 버스에 대한 액세스를 종료할 수 있고 그리고 다음 클럭 사이클에서 그 요구 라인상의 신호를 제4논리 상태(예컨대, "0")로 만들 수 있다.Regardless of how shared bus arbiter 150 is connected to the bus master via the request line and the grant line, in one embodiment of the present invention, the arbiter operates in the following manner. In order to gain access to the shared bus, the bus master must bring the signal on its request line to a first logical state (eg, a "1" logic level). If arbiter 150 wishes to grant access to the shared bus and to the request bus master, the arbiter sends a signal on the grant line to the second logical state of the bus master (eg, "1"). Should be made. If the arbiter later wishes to terminate a particular access to the shared bus, the arbiter must bring the signal on the grant line side of the accessing bus master into a third logical state (eg, "0"), thus The accessing bus master may terminate access to the shared bus and bring the signal on its request line to a fourth logical state (eg, “0”) in the next clock cycle.

따라서, 상기 공유 버스를 통해 통신을 개시하기 전에, 프로세서(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, processor 156 initiates communication with shared bus arbiter 150 to obtain permission to drive the shared bus. In particular, to gain access to the shared bus, processor 156 requires the EMAU to initiate external access over the shared bus. At this time, the EMAU 144 puts the signal on the request line side into a first logical state, and the arbitrator sets the signal on the grant line side (indicating that the arbitrator has granted access to the shared bus, i. Wait until the second logical state. The access of the EMAU to the shared bus may be terminated by the arbiter if the arbiter brings the signal on the grant line side of the EMAU to a third logical state, whereby the EMAU may terminate access to the shared bus. And the signal on the demand line side can be brought to the fourth logic state in the next clock cycle. However, as described below, the processor refuses to bring the signal on the request line side to the fourth logic state in response to the arbiter bringing the signal on the grant line side to a third logic state, thereby providing the shared bus with the shared bus. The EMAU can be programmed to refuse to terminate access to it (ie, the EMAU can be programmed to lock the shared bus).

프로세서(156)는 또한 EMAU 버스(142), EMAU(144), 및 공유 버스(148)를 통해 데이터 메모리 뱅크 제어기(154)와 통신한다. 데이터 메모리 뱅크 제어기(154)를 N개의 데이터 뱅크(158)에 접속하는 특정 개수의 제어 라인(도 4에 도시되어 있지 않음)의 액티브를 통해, 상기 데이터 메모리 뱅크 제어기는 상기 데이터 메모리 뱅크를 특정 버스에 할당한다(즉, 상기 데이터 메모리 뱅크가 상기 공유 버스 또는 전용 버스로부터 정보를 수신할 수 있도록 해 준다). 상기 버스 마스터는 특정 데이터 메모리 뱅크를 특정 버스에 할당하도록 제어기(154)에 요구하기 위해, 상기 공유 버스를 통해 데이터 메모리 뱅크 제어기(154)를 액세스한다. 상기 데이터 메모리 뱅크 제어기가 특정 버스 마스터를 특정 데이터 뱅크에 액세스하도록 결정하면, 상기 제어기는 데이터 뱅크에 접속되어 있는 제어 라인을 통해 제어신호를 전송한다. 이때, 상기 데이터 뱅크는 이들이 액세스되어야 하는지 그리고 액세스되어야 하면 상기 공유 버스 또는 전용 버스로부터 정보를 수신해야 하는지를 결정하기 위해 상기 제어 신호를 디코딩한다. 상기 공유 버스 또는 전용 버스를 통해 액세스되게 됨을 상기 요구 데이터 뱅크에 알린 후에, 상기 데이터 뱅크 메모리 제어기는 상기 공유 버스측의 버스 마스터측에 허가 신호를 전송한다. 특정 데이터 뱅크를 액세스하는데에 대한 허가신호를 수신하는 즉시, 상기 요구하는 버스 마스터는 상기 공유 버스 또는 전용 버스를 통해 상기 요구 데이터 뱅크에 대한 데이터 액세스를 개시한다.Processor 156 also communicates with data memory bank controller 154 via EMAU bus 142, EMAU 144, and shared bus 148. Through the activation of a certain number of control lines (not shown in FIG. 4) connecting the data memory bank controller 154 to the N data banks 158, the data memory bank controller is configured to route the data memory bank to a specific bus. (Ie, allow the data memory bank to receive information from the shared bus or dedicated bus). The bus master accesses data memory bank controller 154 through the shared bus to request controller 154 to assign a particular data memory bank to a particular bus. When the data memory bank controller determines that a particular bus master has access to a particular data bank, the controller transmits a control signal through a control line connected to the data bank. The data bank then decodes the control signal to determine if they should be accessed and if information should be received from the shared bus or dedicated bus. After informing the request data bank that it is to be accessed via the shared bus or the dedicated bus, the data bank memory controller sends a grant signal to the bus master side on the shared bus side. Upon receipt of a grant signal for accessing a particular data bank, the requesting bus master initiates data access to the request data bank via the shared bus or dedicated bus.

도 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, EMAU 144 is the only bus master that can access a data memory bank via the dedicated bus or shared bus. In other words, the only bus master that can access a particular data memory bank through the dedicated bus is EMAU 144. This embodiment of the invention reduces the data access time of the processor 156 by preventing the processor from interrupting data access caused by other components accessing a particular data bank. It just makes the data bank accessible. In particular, since the processor 156 does not terminate data access to allow other components of the computer system to access the data bank, the data access time of the processor is minimized. Rather, the processor 156 may access a particular data bank through the dedicated bus, such that other components may access another data bank through the shared bus. In addition, this embodiment of the present invention only allows the EMAU to access the data bank through the dedicated bus in order to reduce the data access time of the processor 156 by not overloading the dedicated bus.

도 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 processor 156 also communicates with the direct memory access unit (DMA) 152 to direct the EMAU bus 142, the EMAU 144, and the shared bus 148. use. The direct memory access unit 152 connects a number of external components (eg, external system memory not shown in FIG. 4) to the data bank side via a dedicated bus 148. In addition, these external components can access a particular data bank through the shared bus connection when EMAU 144 is not accessing via dedicated bus 146. The processor 156 also communicates with the DMA 152 to program the DMA so that external components can access the data bank that the processor wishes to access. For example, when the processor finishes accessing a data bank, it may wish to review the contents of that data bank by external components. Thus, the processor directly accesses the memory access unit (via an external memory access unit and a shared bus) and programs the unit to provide the contents of the data bank to the external component.

이전에 언급한 바와같이, 상기 데이터 액세스 시간을 최소화하기 위해, 프로세서(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, processor 156 accesses N data memory banks 158 to EMAU bus 142, EMAU 144, and dedicated bus 146 or Use shared bus 148. In other words, the external memory access device of the present invention allows the processor to have a short data access time. For example, when processor 156 accesses data memory bank 158 via dedicated bus 146, the external memory access device 140 may initiate a write operation at the X + Y clock cycle, and When a read operation is initiated, the X + Y + Z clock cycle allows access to the X location of the data memory, where (1) X represents the number of locations accessed in the data memory, and (2) Y is the (3) Z represents the number of clock cycles required to prefetch data during the read operation. In the case of the embodiment of the present invention shown in FIG. 4, the programming clock cycle Y is two and the prefetch clock cycle Z is two. In addition, if the processor 156 uses a shared bus to access a particular data memory bank, then the external memory access device 140 may perform an X + Y + W clock cycle when the processor starts a write operation, and a read operation may be performed. When started, at X + Y + Z + W clock cycles, access the Y position of the data memory, where W represents the number of clock cycles the EMAU waits until an arbitrator grants access to the shared bus. .

또한 후술되는 바와같이, 프로세서(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 processor 156 first programs the EMAU during the initial programming phase when it wishes to initiate external access via a dedicated or shared bus. For example, during the initial programming phase, the processor 156 informs EMAU of the start address of an external component that the EMAU wishes to access via the shared bus or dedicated bus. During the initial programming phase, processor 156 also informs the EMAU whether it needs to initiate a block external access operation or a single external access operation. If processor 156 requires an out-of-block access operation, the processor also informs the EMAU of the block size, step size, and specific block mode access method (ie, incremental or decremented access method). give. In addition, the processor 156 must determine whether the EMAU should deny access release in response to the removal of the grant signal of the arbitrator after initiating access through the shared bus (ie, the EMAU must lock the shared bus). The EMAU. If the external access required by the processor 156 to initiate the EMAU 144 is an external data access, then the programmed information also tells the EMAU whether to access the data bank via a dedicated bus or shared bus. After the EMAU is programmed, the processor provides an external read or write command (e.g., a read command or a write command directed to one of the external data registers of EMAU 144) by way of the processor and the external through the EMAU. Initiate communication between components.

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 EMAU bus 142, EMAU 144, dedicated bus 146, and shared bus 148 of FIG. 1. As shown in this figure, the EMAU bus includes an external data bus line 180, an external input / output access bus line 182, an EMAU register bus line 184, a read / write bus line 186, and a stop. Processor bus line 188 is included.

도 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 processor 156 and the EMAU 144. In addition, the external input / output access bus line 182 is a 1-bit line, where the processor 156 uses this line to supply an external input / output access signal to the external memory access unit side. This external input / output access signal also informs the external memory access unit whether the processor wishes to initiate an external input / output access, whereby the external memory access unit sends any other signal that the processor transmits on the EMAU bus. Can be reviewed.

EMAU 레지스터 버스(184)는 2비트 라인 버스이고, 이때, 상기 프로세서는 이 버스를 상기 EMAU의 특정 레지스터와 통신하는데 사용한다. 환언하면, 프로세서(156)는 특정 EMAU 레지스터와의 통신을 명령하는데 EMAU 레지스터 버스(184)를 사용한다. 상기 EMAU 버스는 또한 프로세서가 상기 외부 액세스가 판독 동작(즉, 입력 동작) 또는 기록 동작(즉, 출력 동작)을 포함하고 있음을 상기 EMAU에게 알리기 위해 사용하는 판독/기록 버스 라인(186)을 포함한다.EMAU register bus 184 is a 2-bit line bus, where the processor uses this bus to communicate with a specific register of the EMAU. In other words, processor 156 uses EMAU register bus 184 to command communication with a particular EMAU register. The EMAU bus also includes a read / write bus line 186 that the processor uses to inform the EMAU that the external access includes a read operation (ie an input operation) or a write operation (ie an output operation). do.

마지막으로, 상기 EMAU 버스는 정지 프로세서 버스 라인(188)을 포함하고 있으며, 이 라인은 상기 EMAU가 프로세서(156)의 동작을 정지시키는데 사용된다. 예컨대, 대기 상태 머신을 가지고 있지 않은 프로세서(156)의 실시예의 경우에, 상기 EMAU는 상기 프로세서의 동작을 정지시키기 위해 정지 프로세서 클럭 신호를 상기 프로세서의 클럭 게이트 회로측으로 보내는데 정지 프로세서 라인(188)을 사용한다. 한편, 대기 상태 머신을 가지고 있지 않은 프로세서(156)의 실시예의 경우에, EMAU(144)는 상기 대기 상태 머신이 프로세서를 아이들 상태로 만들 수 있도록 하기 위해 대기 신호를 상기 대기 상태 머신측으로 보낸다. 상기 EMAU는 (1) 클럭 모듈(202)이 상기 프로세서와 상기 EMAU의 전원을 다운시키기 위해 정지 요구 신호를 EMAU측으로 보낼 때, 또는 (2)판독 동작의 초기 프리페치 단계 동안에 상기 EMAU가 두 클럭 사이클 동안에 상기 프로세서를 정지시켜야 할 때 정지 프로세서 클럭 신호 또는 대기 신호를 프로세서측으로 보낸다.Finally, the EMAU bus includes a stop processor bus line 188, which is used by the EMAU to stop the operation of the processor 156. For example, in the case of an embodiment of a processor 156 that does not have a standby machine, the EMAU sends a stop processor clock signal to the clock gate circuitry side of the processor to stop the operation of the processor. use. On the other hand, in the case of an embodiment of the processor 156 that does not have a standby machine, the EMAU 144 sends a standby signal to the standby machine side to enable the standby machine to idle the processor. The EMAU includes two clock cycles when (1) the clock module 202 sends a stop request signal to the EMAU to power down the processor and the EMAU, or (2) during the initial prefetch phase of a read operation. The processor sends a stop processor clock signal or wait signal to the processor when it is necessary to stop the processor.

설명을 위해 도 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 EMAU bus 142. However, in another embodiment of the present invention, the EMAU bus has a different width. For example, for illustrative purposes, Figure 5 shows a 16-bit line external data bus that carries a 16-bit data word, but in the case of another embodiment of the invention the external data bus 180 may have a different width and different bits. A data word with a size can be transferred. Thus, one embodiment of the EMAU 144 receives an 8-bit data word and uses a sign extension technique to transfer this 16-bit data word to the processor 156 side.

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 processor 156 and the externally accessed component. Although a specific width of the dedicated bus and the shared bus is shown in FIG. 5 for explanation, of course, in other embodiments of the present invention, these buses may have different widths.

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 EMAU clock generator 192, a shared and dedicated bus interface 190, and a state machine block 194. The EMAU clock generator receives clock signals from the system clock module 202, augments these clock signals, and sends these enhanced signals to the state machine block 194 side and to the shared and dedicated bus interface 190 side. to provide.

도 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 arbiter 150 to determine when processor 156 can access the shared bus via an external memory access unit. Receive signal and shared bus request signal. Also, as previously mentioned, state machine block 194 receives a stop request signal (on the stop request line 200 side) from the system clock module 202 so that the processor and the EMAU can be powered down. . In addition, as described below, the state machine block 194 may include an external I / O access bus 182, an EMAU register bus 184, and a read / write bus 186 to determine when external access may be initiated. ), The EMAU control bus 204, and the signal on the shared bus grant line side. Upon determining that external access can be initiated, state machine block 194 can initiate external data access in response to an external read or write command from the processor (via EMAU control bus 204). The enable signal is transmitted to the shared and dedicated bus interface 190. In other words, the state machine block 194 can generate an enable signal that controls the operation of the shared and dedicated bus interface 190 (and thus control the operation of the EMAU 144), the processor 156. Monitors the signals sent to the shared and dedicated bus interface 190 side.

공유 및 전용 버스 인터페이스(190)는 초기 프로그래밍 단계 동안에 프로세서(156)가 프로그래밍하는 다수의 레지스터를 포함하고 있다. 프로세서(156)는 외부 I/O 액세스(182), EMAU 레지스터(184), 및 판독/기록 버스(186)를 따라 전송된 제어 신호를 통해 공유 및 전용 버스 인터페이스(190)의 레지스터의 프로그래밍을 제어한다. 또한, 외부 데이터 버스(180)를 통해, 프로세서(156)는 공유 및 전용 버스 인터페이스(190)의 특정 레지스터측으로 프로그래밍 신호를 전송한다. 또한, 공유 및 전용 버스 인터페이스(190)는 프로세서(156)와 그리고 외부 구성요소(예컨대, 외부 데이터 메모리 뱅크(158))와 정보를 주고 받는데 외부 데이터 버스(180)를 사용한다. 마지막으로, 공유 및 전용 버스 인터페이스(190)는 상태 머신 블록(194)과 제어 신호를 송수신하는데 EMAU 제어 버스(204)를 사용한다.Shared and dedicated bus interface 190 includes a number of registers programmed by processor 156 during the initial programming phase. Processor 156 controls the programming of the registers of shared and dedicated bus interface 190 via control signals sent along external I / O access 182, EMAU register 184, and read / write bus 186. do. In addition, via external data bus 180, processor 156 sends programming signals to specific registers of shared and dedicated bus interface 190. The shared and dedicated bus interface 190 also uses an external data bus 180 to communicate information with the processor 156 and with external components (eg, external data memory banks 158). Finally, shared and dedicated bus interface 190 uses EMAU control bus 204 to send and receive control signals to and from state machine block 194.

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 dedicated bus interface 190 of the EMAU 144 of FIG. 5. As shown in this figure, shared and dedicated bus interface 190 includes bus interface control unit 220, external access control register (EACR) 222, external read address unit (ERAU) 224, external write address. Unit (EWAU) 230, external data read register (EDRR) 226, and external data write register (EDWR) 228. The control unit 220 is connected to the processor 156 via an external data bus 180, an external I / O access bus 182, an EMAU register bus 184, and a read / write bus 186. The control unit 220 is a decoder that controls communication between the processor 156 and external registers of the shared and dedicated bus interface 190. For example, the control unit 220 may be configured such that any signal on the EMAU bus 142 side is shared and dedicated bus interface until the processor directs the initiation of external access via the external I / O access bus line 182. It does not reach the register of 190). When an external access signal is detected on the external I / O access bus 182, the control unit 220 determines the register with which the processor wishes to communicate by examining the signal on the EMAU register bus 184 side. As mentioned previously, in one embodiment of the present invention, the EMAU register bus has two bit lines. Thus, for this embodiment of the present invention, Table 1 describes the decoding logic used by the control unit 220 to determine the external register (of the bus interface 190) with which the processor 156 communicates.

EMAU 레지스터 버스의 제2비트 라인의 비트값Bit value of the second bit line of the EMAU register bus EMAU 레지스터 버스의 제1비트 라인의 비트값Bit value of the first bit line of the EMAU register bus 액세스중인 버스 인터페이스의 외부 레지스터External register of the bus interface being accessed 00 00 외부액세스제어레지스터(222)External access control register (222) 00 1One 외부판독주소유닛(224)External read address unit (224) 1One 00 외부기록주소유닛(230)External record address unit 230 1One 1One 외부데이타레지스터(226a/228)External Data Register (226a / 228)

일단, 제어 유닛(220)은, 프로세서(156)가 공유 및 전용 버스 인터페이스의 어떤 외부 레지스터와 통신하고자 하는지를 결정하면, 요구된 외부 레지스터를 인에이블시키고 버스 인터페이스(190)의 외부 레지스터의 나머지를 디스에이블시킨다. 이때, 제어 유닛(220)은 상기 요구된 레지스터와 상기 프로세서간의 통신을 개시시키기 위해, 외부 데이터 버스(180)와 판독/기록 버스(186)측의 신호를 상기 요구된 레지스터측으로 보낸다.Once the control unit 220 has determined which external register of the shared and dedicated bus interface it wishes to communicate with, it enables the required external register and displays the rest of the external register of the bus interface 190. Enable it. At this time, the control unit 220 sends a signal on the external data bus 180 and a read / write bus 186 side to the requested register side to initiate communication between the requested register and the processor.

또한, 도 6에 도시된 바와같이, 제어 유닛(220)은 클럭 버스(198)측의 클럭 신호를 수신한다. 제어 유닛(220)은 자신의 동작을 위해 클럭 신호를 사용하고 이 클럭 신호를 (버스 인터페이스 제어 버스(232)를 통해) 공유 및 전용 버스 인터페이스의 외부 레지스터측으로 전송한다. 도 6에 도시되어 있는 바와같이, 제어 유닛(220)은 또한 EMAU 제어 버스(204)를 따라 상태 머신 블록(194)으로부터 신호를 수신한다. 이 도면에 도시된 바와같이, 상태 머신 블록(194)이 공유 및 전용 버스 인터페이스(190)와 통신하는데 사용하는 제어 라인은, 프로세서(156)가 외부 주소 유닛(224 또는 230)과의 통신을 개시한 후에 상기 제어 유닛이 카운터 인에이블 신호를 외부 주소 유닛(224)측으로 전송하는데 사용하는 카운터 인에이블 라인을 포함하고 있다.In addition, as shown in FIG. 6, the control unit 220 receives a clock signal on the clock bus 198 side. The control unit 220 uses the clock signal for its operation and sends it to the external register side of the shared and dedicated bus interface (via the bus interface control bus 232). As shown in FIG. 6, the control unit 220 also receives a signal from the state machine block 194 along the EMAU control bus 204. As shown in this figure, the control line that state machine block 194 uses to communicate with the shared and dedicated bus interface 190 allows the processor 156 to initiate communication with an external address unit 224 or 230. And a counter enable line which the control unit uses to transmit a counter enable signal to the external address unit 224 side.

상태 머신 블록(194)이 공유 및 전용 버스 인터페이스(190)와 통신하는데 사용하는 제어 라인은 또한 공유 및 전용 버스 판독 및 기록 인에이블 라인을 포함하고 있다. 이들 라인상의 신호는 버스 인터페이스 제어 버스(232)와 인에이블 버스(234)를 따라 외부 메모리 인터페이스 유닛(238)측으로 제어 유닛에 의해 전송된다. 이들 공유 및 전용 버스 판독 및 기록 인에이블 신호를 기초로, 외부 메모리 인터페이스 유닛(238)은 상기 공유 버스 또는 전용 버스가 외부 액세스를 위해 요구되고 있는지, 그리고 요구되고 있으면 외부 액세스가 판독 또는 기록 동작을 포함하고 있는지를 결정한다.The control lines that state machine block 194 uses to communicate with shared and dedicated bus interfaces 190 also include shared and dedicated bus read and write enable lines. The signals on these lines are sent by the control unit along the bus interface control bus 232 and the enable bus 234 to the external memory interface unit 238. Based on these shared and dedicated bus read and write enable signals, external memory interface unit 238 is responsible for whether the shared bus or dedicated bus is required for external access, and if so, external access may perform a read or write operation. Determine if it is included.

따라서, 외부 메모리 인터페이스 유닛이 상기 전용 버스가 외부 판독을 위해 요구되고 있는 것으로 결정하면, 외부 메모리 인터페이스 유닛(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 memory interface unit 238 puts all the bus lines on the shared bus into a tri-state, and write bus lines of the dedicated bus. Deactivate and activate the address bus, data bus, and read bus lines of the dedicated bus. On the other hand, if the processor requires the dedicated bus for external writing, external memory interface unit 238 puts all the bus lines on the shared bus into three states, deactivates the read bus lines of the dedicated bus, and dedicates them. Activates the address bus, data bus, and write bus lines of the bus. However, if processor 156 requested an external read along the shared bus, external memory interface unit 238 deactivates all the bus lines on the dedicated bus, deactivates the write bus lines of the shared bus, and Activate the shared bus's address bus, data bus, and read bus lines. Finally, if the processor requires an external read along the shared bus, external memory interface unit 238 deactivates all bus lines on the dedicated bus, deactivates write bus lines on the shared bus, and shares Activates the bus address bus, address bus, and write bus lines.

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, processor 156 initially programs EMAU 144 during the initial programming phase. In the case of the embodiment of the shared and dedicated bus interface 190 shown in FIG. 6, the programming operation is as follows. During the first cycle of the two cycle initial programming phase, the processor 156 programs the external access control register 222. Processor 156 initiates the programming of external access register 222 by first instructing an external input or output access on the external I / O access line 182 side. Processor 156 also sends a "0" on the EMAU register bus to inform control unit 220 that it wants to communicate with external access control register 222. At this time, the processor 156 provides the EACR 222 by providing a write signal to the read / write bus 186 side and transmitting the first control word to the shared and dedicated bus interface 190 side through the external data bus 180. Program the first control word. Table 2 describes an example of the first control word.

제1제어 워드First control word 비트 수Number of bits 비트 기능Bit function 1One 루프 크기 비트Loop size bits 22 루프 크기 비트Loop size bits 33 루프 크기 비트Loop size bits 44 루프 크기 비트Loop size bits 55 루프 크기 비트Loop size bits 66 루프 크기 비트Loop size bits 77 루프 크기 비트Loop size bits 88 루프 크기 비트Loop size bits 99 인크리멘트 비트Increment Bits 1010 디크리멘트 비트Decrement Bits 1111 스텝 크기 비트Step size bits 1212 로크 공유 버스 비트Lock shared bus bit 1313 예약reservation 1414 예약reservation 1515 예약reservation 1616 예약reservation

제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.

디크리멘트(제10)비트의 비트값Bit value of Decrement (10th) bit 인크리멘트(제9)비트의 비트값Bit value of increment (ninth) bit 액세스 동작의 종류Type of access action 00 00 단일 액세스 동작Single access behavior 00 1One 자동 인크리멘트 블록 액세스 동작Automatic Increment Block Access Behavior 1One 00 자동 디크리멘트 블록 액세스 동작Automatic Decrement Block Access Behavior 1One 1One 단일 액세스 동작Single access behavior

이때, EACR(222)은 프로세서(156)가 요구한 액세스 동작의 종류를 (ERAU(224) 또는 EWAU(230)의) 주소 카운터 유닛(244 또는 247)에게 알려 준다. 프로세서(156)가 어떤 종류의 블록 모드 액세스 동작(즉, 자동 인크리멘트 또는 자동 디크리멘트 블록 모드 액세스 동작)을 요구하면, 상기 제1제어 워드의 제1의 8비트(즉, 루프 크기 비트)는 상기 액세스된 블록의 크기(즉, 루프 크기)를 결정한다. 이들 제1의 8비트는 상기 프로세서가 1에서 256까지의 어떤 블록 크기를 선택할 수 있도록 해 준다. 외부 액세스 제어 레지스터(222)는 주소 카운터 유닛(244 또는 247)측에 상기 블록 크기를 제공해 준다.At this time, the EACR 222 informs the address counter unit 244 or 247 (of the ERAU 224 or the EWAU 230) of the type of access operation requested by the processor 156. If the processor 156 requires some kind of block mode access operation (i.e., auto increment or automatic decrement block mode access operation), the first 8 bits of the first control word (i.e. loop size bits) ) Determines the size of the accessed block (ie loop size). These first 8 bits allow the processor to select any block size from 1 to 256. The external access control register 222 provides the block size to the address counter unit 244 or 247 side.

프로세서(156)는 또한 액세스 모드를 프로그래밍하는데 제1제어워드의 제11비트를 사용한다. 특히, 프로세서(156)가 블록 모드 액세스를 요구하면, 상기 제11비트는 인크리멘트 또는 디크리멘트의 스텝 크기가 1 또는 2임을 상기 EMAU에게 알려 준다. 상기 프로세서가 스텝 크기 2를 프로그래밍할 수 있도록 해 주는 이러한 본 발명의 능력은 DSP 응용에 유리한데, 이는 실수 데이터 성분과 허수 데이터 성분이 인접 데이터 워드로서 상기 데이터 메모리에 저장되어 있을 때 상기 프로세서가 실수 데이터 또는 허수 데이터만을 액세스할 수 있도록 해 주기 때문이다. 또한, 외부 액세스 제어 레지스터(222)는 이 스텝 크기를 주소 카운터(224 또는 247)에게 알려 준다.Processor 156 also uses the eleventh bit of the first control word to program the access mode. In particular, when processor 156 requests block mode access, the eleventh bit informs the EMAU that the step size of the increment or decrement is one or two. This ability of the present invention to allow the processor to program step size 2 is advantageous for DSP applications, where the processor is a real number when real and imaginary data elements are stored in the data memory as adjacent data words. This allows you to access only data or imaginary data. The external access control register 222 also informs the address counter 224 or 247 of this step size.

상기 제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 processor 156 is instructing this word by ERAU 224 or EWAU 230), then the EMAU will share the request after the request has been approved by arbiter 150. The bus is locked. Thus, if the EMAU accesses the shared bus after the processor 156 requests the data transfer to lock the shared bus, the EMAU will not make the shared bus request signal low even after the arbitrator has removed the shared bus grant signal. (If the shared bus request signal goes low, the arbiter grants access to the shared bus to another bus master). After locking the shared bus, the EMAU does not automatically unlock the shared bus after the processor terminates access through the shared bus. In particular, in order for the EMAU to unlock the shared bus, the processor 156 must reprogram the external access control register (i.e., the processor 156 must clear the twelfth bit (a value of " 0 "). Other control words) must be recorded in the EACR 222). This ability of the processor to remain locked to the shared bus is useful during read correction write operations. Finally, if this shared bus lock bit is not set (ie does not have a value of "0"), the shared bus is not locked, and the EMAU indicates that the arbitrator will lower the signal on the grant line side. After the state, the access to the shared bus is abandoned.

또한, 프로세서(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 processor 156 indicates that it wishes to communicate with the external access control unit 222 by (1) providing an active signal on the external I / O access line 182 (2). External access by sending a " 0 " signal on the EMAU register bus 184 to instruct the 220 side, and (3) providing a read operation signal on the read / write bus line 186. The first control word stored in the control register 222 may be read. In response to this signal, the EACR 222 provides a programmed first control word on the bus interface control bus 232, where the word provides the information to the control unit 220 and the external data bus 180. Through the processor 156 to pass through.

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 processor 156 programs one of the external address units. During this clock cycle, the processor 156 maintains an active signal on the external input / output access line 182 and indicates that it wants to communicate with one of the external address units 224 or 230. Transmits a "1" or "10" signal on the EMAU register bus. In the case where the external read operation is to be initiated, the processor 156 programs the external read address unit 224 and in the case where the external write operation is to be initiated, the external write address unit 230 is programmed. In order not to obscure the description of the present invention by unnecessary description, the programming of the external read address unit is described below. However, the description below can of course also be applied to the programming of the external write address unit.

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 ERAU 224, the processor 156 sends a 16-bit second control word to the external address unit via the external data bus 180 and writes a write operation signal on the read / write bus line 186. By providing an external read address unit 224 to record the signal. The sixteenth bit of the second control word is used to indicate that the EMAU should initiate a read operation over a shared bus or dedicated bus. This sixteenth bit is stored in the second address register 246 of the ERAU 224. The ERAU supplies the sixteenth bit to the state machine 224 side, which generates an enable signal that later selects a bus to use when the EMAU should initiate external access. In the case of the embodiment of the present invention illustrated in FIG. 6, if the value of the sixteenth bit is "1", the EMAU can access an external component through a shared bus, and the value of the sixteenth bit is " 0 ", the EMAU can initiate external data access via the dedicated bus.

제2제어 워드의 비트 1 내지 15는 공유 버스 또는 전용 버스에 접속되어 있는 외부 구성요소의 주소를 지시하기 위해 상기 프로세서에 의해 사용된다. 외부 데이터 액세스 동안에, 제2제어 워드의 비트 1 내지 15는 (1) 상기 EMAU가 단일 액세스 동작을 행할 때의 상기 요구된 데이터 워드의 주소, 또는 (2) 상기 EMAU가 블록 액세스 동작을 행할 때의 데이터 워드의 요구된 블록의 초기 주소를 지시해 준다. 상기 제2제어 워드의 제9비트 내지 제15비트는 외부 판독 주소 유닛(224)의 제2주소 레지스터(246)에 저장된다. 원래의 하위 8비트와 더불어 상기 7개의 비트는 외부 레지스터 위치(예컨대, N개 데이터 뱅크(158)중 한 뱅크에서의 메모리 위치)를 정의하고 있다.Bits 1 through 15 of the second control word are used by the processor to indicate the address of an external component that is connected to a shared bus or a dedicated bus. During an external data access, bits 1 to 15 of the second control word are either (1) the address of the requested data word when the EMAU performs a single access operation, or (2) when the EMAU performs a block access operation. Indicates the initial address of the requested block of data words. The ninth to fifteenth bits of the second control word are stored in the second address register 246 of the external read address unit 224. The seven bits, together with the original lower 8 bits, define an external register location (e.g., a memory location in one of the N data banks 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 ERAU 224. In addition, when the state machine block 190 supplies the active counter enable signal to the address counter unit 244, the address counter unit may control these lower eight bits and the control signal supplied by the EACR 222 (i.e., step size). , Loop size, and decrement / increment mode signal) to generate up to 256 external partial addresses. In other words, if processor 156 requires block mode access, address counter unit 244 counts up by one or two starting from the initial eight bits received (ie, bits 1 through 8 of the second control word). Or count down to generate up to 256 external partial addresses.

도 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 state machine block 194 via the bus interface control unit 220 and the bus interface control bus 232), Correspondingly, the counter is activated or deactivated. The operation of the external read address unit 224 during the first two clock cycles in which the counter unit 224 receives the active counter enable signal will now be described. During the high phase of the first clock cycle, the second address register 246 stores bits 9 through 16 of the second control word, and the first address register 245 stores bits 1 through 8 of the second control word. . During the low phase of the first clock cycle, the first address register 245 supplies the first eight bits of the second control word to the second address register 246, where this register 246 is the lower one. Combine the eight bits with bits 9-16 to produce a complete first external address. Store this complete first external address. Also during this row phase, the counter 244 generates a first 8-bit partial address. During the high phase of the second clock cycle, the counter 244 supplies the first partial address to the first address register 245, and the second address register 246 supplies the first external address to the address output bus 236. Send along). During the low phase of the second clock cycle, the address counter 244 generates a second 8-bit partial address, and the second address register 246 receives the first partial address from the first address register 245. Combine the first partial address with bits 9 to 16 of the second control word to generate a complete second external address, and store this complete second external address.

또한, 프로세서(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 / O access line 182 to (2) instruct the control unit 220 that it wants to communicate with the ERAU 244. The current address stored in the address register of the ERAU 224 by transmitting a " 1 " signal on the EMAU register bus 184, and (3) providing a read operation on the read / write bus line 186. Or note that the second control word can be read. In response to these signals, the ERAU 224 provides the contents of the second address register 246 on the control bus 232, which registers the information with the control unit 220 and the external data bus 180. The processor 156 transmits the data to the processor 156.

c. 외부 데이터 레지스터c. External data register

초기의 2클럭 사이클의 프로그래밍 단계 이후에, 프로세서(156)는 외부 입력(즉, 판독) 또는 출력(즉, 기록) 동작을 개시한다. 프로세서(156)는 판독동작 동안에 외부 데이터 판독 레지스터(즉, EDRR)(226)를 사용하고, 그리고 기록 동작 동안에는 외부 데이터 기록 레지스터(즉, EDWR)(228)를 사용한다. 이러한 레지스터 데이터 액세스 방법의 사용에 의해, 프로세서(156)의 데이터 액세스 시간이 줄어든다.After the initial two clock cycle programming phase, processor 156 initiates an external input (ie, read) or output (ie, write) operation. Processor 156 uses an external data read register (ie, EDRR) 226 during a read operation, and an external data write register (ie, EDWR) 228 during a write operation. By using this register data access method, the data access time of the processor 156 is reduced.

특히, 앞에서 언급한 바와 같이, 프로세서(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 processor 156 accesses the data memory bank 158 via the dedicated bus 146, the external memory access device 140 may execute an X + Y clock when a write operation is performed. In the cycle, and in the X + Y + Z clock cycle when a read operation is performed, allows the processor to access the X position of the data memory, where (1) X is the accessed position of the data memory. (2) Y represents the number of clock cycles required to program the EMAU, and (3) Z represents the number of clock cycles required to prefetch data during a read operation. As mentioned above, for one embodiment of the present invention, the programming clock cycle Y is two and the prefetch clock cycle Z is two. On the other hand, when the processor 156 uses the shared bus 148 to access a particular data memory bank, the external memory access device 140 performs the read operation in the X + Y + W clock cycle and when the write operation is performed. At the X + Y + Z + W clock cycle, allowing the processor to access the X position of the data memory, where W is the EMAU until the arbitrator grants access to the shared bus. Indicates the number of clock cycles that are waited for.

이제, 판독 동작 동안에 공유 버스 및 전용 버스 인터페이스(190)의 동작에 대해, 전용 버스를 따라 실행되는 블록 판독 액세스 모드를 보인 도 7을 참조하여 설명한다. 이하의 설명은 공유 버스 판독 동작 동안에, 상기 중재기가 EMAU의 공유 버스 요구를 승인할 때까지 W 클럭사이클의 지연이 존재한다는 점을 제외하고는, 공유 버스를 따라 실행되는 블록 판독 액세스에 마찬가지로 적용가능하다.Operation of the shared bus and dedicated bus interface 190 during the read operation will now be described with reference to FIG. 7, which shows a block read access mode executed along the dedicated bus. The following description is similarly applicable to block read access executed along a shared bus, except that during the shared bus read operation, there is a delay of W clock cycles until the arbitrator accepts the EMAU's shared bus request. Do.

상태 머신 블록(194)은 프로세서(156)가 제2외부 데이터 판독 레지스터(226a)로부터 외부 판독 동작을 요구하는 때를 결정하기 위해, 외부 I/O 버스(182), EMAU 레지스터 버스(184) 및 판독/기록 버스(186)를 포함하고 있다. (외부 I/O 액세스 신호, 판독 신호, 및 외부 데이터 레지스터(226a 또는 228)를 선택하는 EMAU 레지스터 신호에 의해 나타내어지는) 상기 요구가 검출되면, 2 클럭 사이클 동안에 프로세서를 정지 또는 아이들 상태로 만들기 위해, 상태 머신 블록(194)은 프로세서(156)에 공급되는 프로세서 정지 신호를 액티브시키며, 이에따라 EMAU(144)는 2개의 데이터 워드를 프리페치하고 이 데이터 워드를 외부 데이터 레지스터에 저장할 수 있다.The state machine block 194 may include an external I / O bus 182, an EMAU register bus 184, and to determine when the processor 156 requires an external read operation from the second external data read register 226a. Read / write bus 186 is included. When the request is detected (represented by an external I / O access signal, a read signal, and an EMAU register signal that selects an external data register 226a or 228), to suspend or idle the processor for two clock cycles. The state machine block 194 activates a processor stop signal supplied to the processor 156, whereby the EMAU 144 may prefetch two data words and store the data words in an external data register.

특히, 상태 머신 블록(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 state machine block 194 detects that processor 156 requires an external read from second EDRR 226a, state machine block 194 causes processor to execute external data register 226a or 228. Activate the counter enable signal as long as is accessed. Also, during the low phase in this first clock cycle, state machine block 194 provides (1) a processor stop signal on stop processor line 188, and maintains this signal for two clock cycles (i.e., Holding the signal until state machine block 194 detects an external read and then goes to a low phase of a third clock cycle), (2) activates a dedicated bus read enable signal bus and sends this signal to the processor. Stops communication with the EDRR 226a until it is 1/2 clock cycle.

상기 제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 ERAU 224 transmits a first external address to the external memory interface unit 238 along the address output bus 236. The interface unit 238 transmits the first external address along the address bus 210p, which is a dedicated bus. In addition, during the second clock cycle, the shared bus and dedicated bus interface 190 activate a dedicated bus readout signal (on the read line 206p of the dedicated bus), and the active signal is processed by the processor with the EDRR 226a. After the communication ends, it is maintained until one clock cycle. Finally, during the second clock cycle, the first EDRR 226b begins storing data retrieved from the particular first data location.

상기 제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 ERAU 224 transmits a second external address along the address output bus 236 and the address bus 210p, and (2) the second clock cycle. The first external data read register 226b ends the storing of the first data word retrieved from the first address location and begins storing the second data retrieved from the second data location, and (3) the second EDRR 226a is stored in the first data word. Store the first data word stored in the 1EDRR 226b, (4) the state machine block 194 deactivates the stop processor signal (ie, pulls down to ground), and (5) the processor 156 Start receiving data stored in the second external data read register 226a.

도 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 dedicated bus interface 190 side, and (2) the ERAU 224 is disabled. Sends third, fourth and fifth external addresses along address bus 236 and address bus 210p, and (3) the first EDRR 226b terminates storing the second data word from the second address location. And store the retrieved third and fourth data words from the third and fourth data locations, and store the retrieved fifth data words from the fifth data location, and (4) the second EDRR 226a may be stored. Store the second, third and fourth data words stored in the 1EDRR 224b, and (5) the processor 156 searches for the first, second and third data words stored in the second EDRR 226a. End and start to retrieve the fourth data word stored in the second EDRR 226a.

제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 state machine block 194 deactivates the dedicated bus read enable signal and the counter enable signal, and (2) the ERAU 224 is the address output bus 236 and the address bus ( 6 external addresses along 210p), (3) the first EDRR 226b terminates storing the fifth data word from the fifth address location, and stops storing the sixth data word retrieved from the sixth data location. (4) the second EDRR 226a stores the fifth data word stored in the first EDRR 224b, and (5) the processor 156 stores the fourth data word stored in the second EDRR 226a. Terminate search. Thus, by the end of the eighth clock cycle (after the state machine block 194 detects that the processor 156 is accessing the external data register 226a), the EMAU 144 processes the fourth data word by the processor. 156 and prefetch two additional data words (ie, data words 5 and 6) and store them in external data read register 226.

신호 액세스 판독 동작 동안에 공유 버스 및 전용 버스 인터페이스(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 dedicated bus interface 190 operations may include: (1) during the signal access read operation, the dedicated address bus transmits only three addresses (during the second, third and fourth clock cycles), (2) the first EDRR 226b latches only three data words (during the second, third, fourth and fifth clock cycles), and (3) the second EDRR 226a (the third and fourth clocks). During the cycle), only two data words are latched, and (4) the processor 156 reads only one data word along the external data bus 180 (during the third and fourth clock cycles). Is very similar to the block read operation described above. In addition, during the signal access read operation, the counter 244 generates the same partial address three times, so that the dedicated bus address bus 210p transmits the same address three times, and the external data read register 226a outputs the same data word. Store three times, and external data read register 226b stores the same data word twice.

한편, 프로세서(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 processor 156 supplies a write signal on the read / write bus line 186, and supplies an external I / O access signal and an EMAU register signal that selects the external data register 226a or 228, the bus interface. 190 allows processor 156 to initiate an output (ie, write) operation via external data write register 223. In particular, as mentioned earlier, when the sixteenth bit of the second control word directs external access via a dedicated bus, external memory access device 14 causes processor 156 to perform an external write operation in an X + Y clock cycle. Where (1) X represents the number of locations accessed in the data memory, and (2) Y represents the number of clock cycles required to program the EMAU. In addition, when the sixteenth bit of the second control word indicates an external write operation for a specific data memory bank through a dedicated bus, the external memory access device 140 causes the processor to perform the operation in an X + Y + W clock cycle. Where W represents the number of clock cycles the EMAU waits until an arbitrator grants access to the shared bus.

이제 ,기록 동작 동안의 공유 버스 및 전용 버스 인터페이스(190)의 동작에 대해서 전용 버스를 따라 실행되는 블록 기록 액세스 동작을 보인 도 8을 참조하여 설명한다. 이하의 설명은 공유 버스 기록의 경우에 중재기가 EMAU의 공유 버스 요구를 승인할 때까지 W개의 클럭사이클의 지연이 존재한다는 점을 제외하고는, 공유 버스를 따라 실행되는 블록 기록 액세스에 마찬가지로 적용될 수 있다.The operation of the shared bus and dedicated bus interface 190 during the write operation will now be described with reference to FIG. 8, which shows a block write access operation performed along the dedicated bus. The description below is equally applicable to block write access executed along the shared bus, except that in the case of shared bus writes there is a delay of W clock cycles until the arbitrator accepts the EMAU's shared bus request. have.

상태 머신 블록(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클럭 사이클 동안의 동작과 동일하다.State machine block 194 reads external I / O bus 182, EMAU register bus 184, and reads to determine when processor 156 requires an external write operation from external data write register 228. / Record bus 186 is included. Upon detection of the request (represented by an external I / O access signal, a write signal, or an EMAU register signal that selects an external data register 226a or 228), the state machine block 194 causes the processor to send an external data write register. As long as 228 is accessed, the counter enable signal is activated. In addition, during the low phase of the first clock cycle in which the state machine block 194 detects an external write, the state machine block 194 activates a dedicated bus write enable signal, and the processor transmits the active signal to the EDWR ( After the communication with 228 is finished, it is maintained until 1/2 clock cycle is reached. During the second clock cycle when processor 156 accesses EDWR 228, (1) EWAU 230 sends a first external address along address output bus 236 and dedicated bus address bus 210p, (2) The external memory interface unit 238 activates the dedicated bus write bus 208p and keeps this active signal until one clock cycle after the processor terminates communication with the EDWR 228, ( 3) The EDWR 228 transfers the first data word along the dedicated bus data bus 212p to the addressed data bank side. As shown in FIG. 8, the operation of the shared bus and dedicated bus interface 190 during the third clock cycle is the same as the operation during the second clock cycle.

제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 state machine block 194 deactivates the dedicated bus write enable signal and the counter enable signal, and (2) the EWAU 230 sends an address output bus 236 and an address bus ( Transmit a third external address along 210p, (3) external memory interface unit 238 maintains an active dedicated bus write signal, and (4) EDWR 228 along dedicated bus data bus 212p; Send a third data word to the addressed data location. Thus, as illustrated in FIG. 8, the external memory access device 140 of the present invention allows the processor 156 to partially complete a write operation in an X + Y clock cycle, where X is the data. Represents the number of locations accessed in memory (ie, three data locations accessed in FIG. 8), and Y represents the number of clock cycles required to program the EMAU (ie, as shown in FIG. 8, EDRR and EWAU). Two clock cycles required for programming).

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 state machine block 194. The function of this block is to (1) monitor the signal that the processor sends to the shared bus and dedicated bus interface side via the external I / O access bus 182, EMAU register bus 184, and read / write bus 186. (2) monitor the acknowledgment signal supplied by the shared bus arbiter 150, and (3) generate a shared bus and dedicated bus enable signal, a counter enable signal, and a stop processor signal, the signals being Controls the operation of the shared bus and dedicated bus interface during external input / output operations. In addition, as mentioned previously, the state machine block 194 is also connected to the clock module 202 to allow the state machine to generate a stop processor signal and an EMAU clock signal by receiving a stop request signal.

도 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 state machine block 194 includes a state machine control unit 250, a shared bus state machine 252, a dedicated bus state machine 254, a state machine control bus 256, and a state machine. An output generating unit 258 is included. The control unit 250 sends clock signals on the clock bus 198 to the state machines 252 and 254 and the output generating unit 258. The control unit 250 is a decoder, which is a signal on the EMAU bus 142 until the processor 156 directs external input / output access (on the external I / O access bus 182). Prevents reaching 252,254 and output generator unit 258 side. Once processor 156 initiates an external input / output access, state machine control unit 250 causes ERAU 224 or EWAU 230 to supply the 16th bit of the second control word to the state machine side. waiting. As mentioned above, the sixteenth bit informs the state machine block 194 whether the processor 156 wishes to initiate external access via a dedicated bus or shared bus. At this time, the control unit 250 waits for the processor 156 to instruct a read or write operation toward the external data register 226a or 228 (on the EMAU register bus 184). Upon receipt of this instruction, control unit 250 (1) enables one of the state machines 252 or 254 and disables the other machine based on the value of the sixteenth bit of the second control word. And (2) enable the state machine output generator unit 258.

제어 유닛(250)이 특정 상태 머신을 인에이블시킨 후에, 제어 유닛(250)은 외부 I/O 액세스 버스(182), EMAU 레지스터 버스(184), 판독/기록 버스(186), 정지 요구 라인(200), 및 EMAU 제어 버스(204)의 블록 모드 라인상에 나타나는 신호를 상기 상태 머신측으로 보낸다. 또한, 제어 유닛(250)이 공유 버스 상태 머신(252)을 인에이블시키면, 제어 유닛(250)은 앞서 언급한 신호를 상기 상태 머신측으로 보낼 뿐만 아니라, (제어 버스(204)상에 나타나는)공유 버스 로크 신호와 공유 버스 승인 신호를 상기 상태 머신측으로 보낸다.After the control unit 250 enables a particular state machine, the control unit 250 may be configured to include an external I / O access bus 182, an EMAU register bus 184, a read / write bus 186, a stop request line ( 200, and a signal appearing on the block mode line of the EMAU control bus 204 is sent to the state machine side. In addition, when the control unit 250 enables the shared bus state machine 252, the control unit 250 not only sends the aforementioned signal to the state machine side, but also shares (shown on the control bus 204). A bus lock signal and a shared bus grant signal are sent to the state machine side.

상기 상태 머신의 이들 입력에 의해 상태 머신의 각종 상태 천이가 행해진다. 도 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 state machines 252 and 254 transition from state to state at the rising edge of the clock. In other words, each state machine examines its input signal to determine if there is a need for a state transition at the rising edge of the clock cycle. In addition, when the state machine is enabled, the state machine generates three digit control codes (b2, b1, b0) related to its current particular state, and sends this three bit state code to the state machine output generator 258 side. Supply. The state machine output generator 258 also controls signals appearing on the read / write bus 186, the EMAU register bus 184, the EMAU control bus 204, the stop request bus 200, and the clock bus 198. Receive via bus 256. These signals, along with the three bit state codes, then drive state machine output generator 258 to generate a bus enable signal, a counter enable signal, a stop clock signal, and a shared bus request signal.

a. 전용 버스 상태 머신a. Dedicated Bus State Machine

프로세서(156)가 전용 버스(146)를 통한 외부 액세스를 개시하고자 함을 (제2제어워드의 제16비트를 통해) 지시하고, 외부 데이터 레지스터(226a 또는 228)를 액세스하고자 함을 지시하면, 상태 머신 제어 유닛(250)은 전용 버스 상태 머신(254)을 인에이블시키고 공유 버스 상태 머신(252)을 디스에이블시킨다.If processor 156 indicates (via the 16th bit of the second control word) that it wishes to initiate external access via dedicated bus 146 and indicates that it wishes to access external data register 226a or 228, State machine control unit 250 enables dedicated bus state machine 254 and disables shared bus state machine 252.

이제, 전용 버스 상태 머신(254)의 동작에 대해 도 10 - 도 13을 참조하여 설명한다. 도 10에는 도 9의 전용 버스 상태 머신(254)의 일실시예에 대한 상태도가 제시되어 있다. 도 11에는 전용 버스를 통한 블록 판독 액세스 동안에, 도 9의 상태 머신 블록(194)의 상태 머신 출력 발생기(258)의 일실시예의 동작에 대한 타이밍도가 제시되어 있다. 도 12에는 전용 버스를 통한 상태 머신 블록(194)의 상태 머신 출력 발생기(258)의 일실시예의 동작에 대한 타이밍도가 제시되어 있다. 도 13에는 전용 버스를 통한 기록 액세스 후의 판독동안에, 도 9의 상태 머신 블록(194)의 상태 머신 출력 발생기(258)의 일실시예의 동작에 대한 타이밍도가 제시되어 있다.The operation of the dedicated bus state machine 254 will now be described with reference to FIGS. 10-13. 10 shows a state diagram of one embodiment of the dedicated bus state machine 254 of FIG. FIG. 11 shows a timing diagram for the operation of one embodiment of the state machine output generator 258 of the state machine block 194 of FIG. 9 during a block read access via a dedicated bus. 12 shows a timing diagram for the operation of one embodiment of state machine output generator 258 of state machine block 194 over a dedicated bus. FIG. 13 shows a timing diagram for the operation of one embodiment of the state machine output generator 258 of the state machine block 194 of FIG. 9 during a read after write access via the dedicated bus.

도 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 bus state machine 254 is defined by the values of three signals, which are (1) a dedicated bus access enable signal and (2) an invalid signal. Reading of the data of the 2EDRR 226a (ie, EDRR2), and (3) a stop request signal. The dedicated bus access enable signal is a dedicated bus state machine enable signal generated by state machine control unit 250. In particular, state machine control unit 250 allows processor 156 to perform external read or write operations via external data registers 226a or 228 and via dedicated bus 146 (external input / output access bus 182, Generate an active dedicated bus enable signal when instructed via the EMAU register bus 184, the read / write bus 186, and the sixteenth bit of the second control word.

또한, 전용 버스 상태 머신(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 bus state machine 254 generates an active read of data in the second EDRR 226a, which is an invalid signal when the processor initiates a single access read operation. The input notification logic circuit detects that the block mode signal is inactive and initiates a single access read operation when the processor requires an external read of the EDRR 226a. In addition, the input notification logic circuitry of the dedicated bus state machine 254 may cause the data of the second EDRR 226a to be invalid when the processor instructs the EMAU to start an initial prefetch read of a block read operation. Generates an active read. If the input notification logic circuit detects a request from the processor 156 to read the EDRR 226a after the processor writes a second control word to the ERAU 224, the input notification logic circuit causes the processor to read the block. Detects that the EMAU has been instructed to start an initial read of the operation.

한편, 프로세서(156)가 기록 동작을 요구하면(즉, 외부 데이터 기록 레지스터(228)와 통신을 개시하고 있으면), 상기 입력 통지 논리 회로는 유효하지 않은 신호(즉, 이 신호는 "0"의 값을 가지고 있음)인 제2EDRR(226)의 데이터의 인액티브 판독을 유지하게 된다. 프로세서(156)가 중간 액세스중에 초기 블록 판독 액세스를 인터럽트한 후에 블록 판독 액세스를 재개하면, 상기 입력 통지 논리 회로는 또한 유효하지 않은 신호인 제2EDRR(226a)의 데이터의 인액티브 판독을 유지하게 된다.On the other hand, if processor 156 requests a write operation (i.e., is initiating communication with external data write register 228), then the input notification logic circuit is not valid (i.e., this signal is " 0 " Has an value) and maintains an inactive read of the data of the second EDRR 226. If the processor 156 resumes block read access after interrupting an initial block read access during an intermediate access, the input notification logic circuitry will also maintain an inactive read of the data of the second EDRR 226a, which is an invalid signal. .

도 10에 또한 도시된 바와같이, 전용 버스 상태 머신(254)은 정지요구 신호와 전용 버스 액세스 인에이블 신호가 인액티브 상태에 있는 한, 아이들 상태(A)로 유지된다(즉, 순환한다). 하지만, 프로세서(156)가 외부 액세스를 개시하여, 현재 외부 데이터 레지스터(226a 또는 228)를 액세한 후에(즉, 액티브 P 버스 액세스 인에이블 신호를 발생한 후에), 전용 버스 상태 머신(254)은 상태(C) 또는 상태(F)로 천이된다.As also shown in FIG. 10, the dedicated bus state machine 254 remains in idle state A (ie, cycles) as long as the stop request signal and the dedicated bus access enable signal are in an inactive state. However, after processor 156 initiates external access to access the current external data register 226a or 228 (i.e., generates an active P bus access enable signal), the dedicated bus state machine 254 enters a state. (C) or transition to state (F).

예컨대, (프로세서(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 processor 156 requires an initial read of a single access read or block read operation from the second EDDR 226a). This will now be described with reference to FIGS. 10, 11 and 13. As shown in these figures, if the processor 156 requests an initial block read from the second EDDR 226a and the dedicated bus state machine 254 is in the idle state A, the output generator 258 will not be able to process the processor. As long as 156 is accessing external data registers 226a or 228, the counter enable signal is active. Also, during the low phase of this initial clock cycle, the output generator 258 provides a stop processor signal on the stop processor clock line 188 and maintains this signal for two clock cycles, (2) enabling a dedicated bus. The read signal is activated and held until the processor 156 is 1/2 clock cycle after the processor 156 terminates communication with the second EDRR 226a.

다음 클럭 사이클의 상승 에지에서, 전용 버스 상태 머신(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 bus state machine 254 detects whether the reading of the data of the dedicated bus access enable signal and the EDRR2 invalid signal is active, and thus from the state A to the first prefetch state (C). Transitions to). During the clock cycle in which the dedicated bus state machine 254 is maintaining the first prefetch state C, the output generator 258 causes the bus interface 190 to store the first data word in the first EDRR 226b. Maintain a dedicated bus read enable signal to begin. In the next clock cycle, the dedicated bus state machine 254 deactivates the stop processor signal to cause the output generator 258 to allow the processor 156 to begin receiving data stored in the second EDRR 226a. A transition is made to the second prefetch state E during the clock cycle.

다음 클럭 사이클에서, 전용 버스 상태 머신(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 bus state machine 254 transitions to the access state (F). In this state, the processor is running, and state machine 254 is responsible for determining whether the processor is currently requesting another external read / write operation via external data register 226a or 228. 182 monitors signals on EMAU register bus 184 and read / write bus 186. If the current processor instruction is not an external access instruction via an external data register 226a or 228 (ie, the dedicated bus access enable signal is not active), then the dedicated bus state machine transitions to an idle state (A). For example, if the current processor instruction is program ERAU 224 or EWAU 230, then the dedicated bus state machine transitions from state F to state A, which means that the processor is no longer EDRR 226a or EDWR ( 228), the dedicated bus access enable signal is deactivated.

한편, 현재 명령이 제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 bus state machine 254 maintains state F and performs read access. 10 and 13, if the current command is an access (i.e., a write access) to the external data write register 228, then the dedicated bus state machine 254 maintains state F. And a write operation is performed based on the address of the EWAU 230. Finally, if the read of the data of the dedicated bus access enable signal and the EDRR2 invalid signal is active (e.g., before the processor 156 prefetches any data word but after programming the ERAU 224, the read operation is interrupted in advance). After requesting an external read, state machine 254 transitions from state (F) to state (C).

한 클럭 사이클에서 상태(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 bus state machine 254 from state A to state F in one clock cycle (processor 156 requires an external write to EDWR 228 and state machine 254 enters state A ), Or what happens when the processor 156 resumes block read access after interrupting a previous block read access, will now be described with reference to FIGS. 10, 12, and 13. As shown in these figures, state machine 254 is in an idle state in state A where processor 156 has requested an external write to EDWR 228, and output generator 258 indicates that the processor has external data. As long as the registers 226a or 228 are accessed, the counter enable signal is active. In addition, during the low phase of this initial clock cycle, the output generator 258 activates the enable write signal, and this signal becomes 1/2 clock cycle after the processor terminates communication with the EDWR 228. Keep up.

다음 클럭 사이클에서, 전용 버스 상태 머신(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 bus state machine 254 determines whether the dedicated bus access enable signal is active (ie, has a value of "1") and whether the reading of the data of the EDRR2 invalid signal is inactive ( That is, it has a value of "0"), and accordingly a transition to the active state F is performed. In this state, state machine 254 is configured to determine whether the processor is currently requesting another external read or write operation via external data register 226a or 228, to the external input / output access bus 182, EMAU register bus. 184, and signals on input / output bus 186. If the current processor instruction is not an external access instruction via an external data register 226a or 228 (ie, the dedicated bus access enable signal is not active), then the dedicated bus state machine transitions to an idle state (A). On the other hand, if the current command is another access command to the external data write register 228 (i.e. another write operation), the dedicated bus state machine 254 maintains state F and the enable signal (i.e. And a counter enable signal and a dedicated bus write enable signal), thereby allowing the bus interface 190 to perform a write operation.

또한, 도 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 bus state machine 254 may As long as the processor accesses external data registers 226a or 228, it will still maintain an active counter enable signal. However, during the low phase of the clock cycle of the current instruction, the output generator 258 deactivates the dedicated bus enable write signal, activates the enable read signal of the dedicated bus, and the processor communicates with the second EDRR 226a. This signal is held until after 1/2 clock cycles. At this time, the EMAU initiates a read operation based on the address of the ERAU 224 in the next clock cycle. In this way, the external access device of the present invention can transition from a write operation to a read operation in only one clock cycle unless the processor loads a new address into the ERAU 224.

상태 머신(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 state machine 254, it is assumed that the stop request signal is inactive (ie, has a value of "0"). If the stop request signal is active and the state machine 254 is in the idle state A or the access state F, the state machine 254 transitions to the stop state H at the rising edge of the next clock cycle. . State transition 254 holds state H until the clock module removes the stop request signal prior to transition to state G or C in the next clock cycle. If the stop request signal is inactive and the processor 156 requests an internal access read from the second EDRR 226a (i.e., reading of the data of the P bus access enable signal and the EDRR2 invalid signal is active and the stop request is active). If the signal is inactive), state machine 254 transitions to state (C).

한편, 프로세서(156)가 제2EDRR(226a)로부터의 초기 외부 판독을 요구하지 않으면, 상태 머신(254)은 다음 클럭 사이클동안에 상태(H)에서 상태(G)로 천이된다. (전체적인 정지 상태 이후에 시작 프로세서의 상태인) 상태(G)로부터, 상태 머신(254)은 아이들 상태(A) 또는 액세스 상태(F)로 천이된다. 특히, 상태 머신(254)은 전용 버스 인에이블 신호가 액티브 상태이고 EDRR(226a)의 데이터의 판독이 인액티브 상태이면 상태(G)로부터 상태(F)로 천이된다. 한편, 상태 머신(254)은 상기 전용 버스 인에이블 신호가 인액티브 상태이면 상태(G)로부터 상태(A)로 천이된다.On the other hand, if processor 156 does not require an initial external read from second EDRR 226a, state machine 254 transitions from state H to state G during the next clock cycle. From state G (which is the state of the starting processor after an overall stop state), state machine 254 transitions to idle state A or access state F. In particular, state machine 254 transitions from state G to state F when the dedicated bus enable signal is active and reading of data in EDRR 226a is inactive. State machine 254, on the other hand, transitions from state G to state A if the dedicated bus enable signal is inactive.

이제, 상기 프로세서가 외부 액세스를 인터럽트한 이후의 전용 버스 상태 머신(254)의 동작에 대해 설명한다. 상기 프로세서가 외부 블록 판독 동작을 인터럽트시켜야 하고, 하지만 나중에 이 동작을 재개하고하는 경우에, 상기 프로세서는 먼저 제2외부 데이터 판독 레지스터(226a)에 포함되어 있는 데이터의 주소를 저장해야 한다. 인터럽트 동안에, 상기 프로세서가 다른 판독 동작을 위해 외부 데이터 판독 레지스터를 사용하고 있으면, 상기 프로세서는 EDRR(226a)의 원래 데이터의 저장된 주소를, 원래의 블록 판독 동작을 재개하기 전에 외부 판독 주소 유닛(224)측으로 재프로그래밍해야 한다. 한편, 인터럽트 중에, 프로세서가 ERAU(224)의 추가적인 프로그래밍없이 EDRR(226a)를 간단히 다시 액세스함으로써 원래의 블록 판독 동작을 재개할 수 있다.The operation of the dedicated bus state machine 254 after the processor interrupts external access is now described. The processor must interrupt the external block read operation, but if it later resumes this operation, the processor must first store the address of the data contained in the second external data read register 226a. During an interrupt, if the processor is using an external data read register for another read operation, the processor reads the stored address of the original data of the EDRR 226a before resuming the original block read operation. You need to reprogram it. On the other hand, during an interrupt, the processor can resume the original block read operation by simply accessing the EDRR 226a again without further programming of the ERAU 224.

한편, 나중에 외부 블록 기록 동작을 재개하기 위해, 상기 프로세서가 중간 액세스에서 외부 블록 기록 동작을 인터럽트시켜야 한다면, 상기 프로세서는 먼저 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 EWAU 230. After the interrupt, the processor should reload the stored original value of EWAU back to the address unit side if it performs another external write operation during the interrupt. On the other hand, if the processor does not perform another write operation during the interrupt, after this interrupt, the processor may simply resume its block write access by accessing the EDWR 228.

마지막으로, 전용 버스 상태 머신(254)은 두 프리페치 사이클로 인한 지연없이 동일한 단일 액세스 판독 동작을 반복적으로 프로세서(156)가 수행할 수 있도록 하는 방법으로 설계되어 있음에 주의하자. 특히, 프로세서(156)가 블록 모드 신호를 디액티브함으로서 단일 액세스 판독 동작을 요구할 때마다, 상기 프로세서는 그 요구된 데이터 워드를 수신하기 전에 3개의 클럭 사이클 동안 대기해야 한다. 상기 프로세서가 다음 클럭 사이클에서 동일한 데이터 워드가 자신에게 공급될 것을 요구하는 상황에서도 상기 지연은 변하지 않고 유지되는데, 이는 상기 프로세서가 블록 모드 신호를 디액티브함으로써 단일 판독 동작을 요구할 때마다, 상기 프로세서가 전용 버스 상태 머신(254)을 상태(A)로부터 프리페치 상태(C,E)측으로 천이시키기 때문이다. 하지만, 상기 프로세서는 또한 하나의 루프 크기를 가진 블록 판독 동작을 지시함으로써 동일한 데이터 워드를 반복적으로 액세스할 수 있으며(즉, 동일한 단일 판독 동작을 반복적으로 수행할 수 있으며). 이에따라 하나의 2클럭 사이클 프리 페치 단계 및 단지 하나의 2 클럭 사이클 프리 페치 단계 이후에 데이터 워드를 얻기 위해 상기 프로세서는 EDRR(226a)을 액세스할 수 있다.Finally, note that the dedicated bus state machine 254 is designed in such a way that the processor 156 can repeatedly perform the same single access read operation without the delay caused by two prefetch cycles. In particular, whenever processor 156 requires a single access read operation by deactivating a block mode signal, the processor must wait for three clock cycles before receiving the requested data word. The delay remains unchanged even when the processor requires the same data word to be supplied to it in the next clock cycle, which means that whenever the processor requires a single read operation by deactivating a block mode signal, the processor This is because the dedicated bus state machine 254 transitions from the state A to the prefetch state C and E side. However, the processor may also access the same data word repeatedly by instructing a block read operation with one loop size (ie, perform the same single read operation repeatedly). Accordingly, the processor may access EDRR 226a to obtain a data word after one two clock cycle prefetch step and only one two clock cycle prefetch step.

b. 공유 버스 상태 머신b. Shared bus state machine

프로세서(156)가 공유 버스(148)를 통해 외부 액세스를 개시하고자 함을 (제2제어워드의 제16비트를 통해) 지시하고 그리고 외부 데이터 레지스터(226a 또는 228)를 액세스하고 함을 (상기 EMAU 레지스터 버스상에서) 지시하면, 상태 머신 블록 제어 유닛(250)은 공유 및 전용 버스 인터페이스(190) 상태 머신(252)를 인에이블시키고 전용 버스 상태 머신(254)을 디스에이블시킨다.The processor 156 indicates (via the 16th bit of the second control word) that it wishes to initiate external access via the shared bus 148 and accesses the external data register 226a or 228 (the EMAU). On the register bus), the state machine block control unit 250 enables the shared and dedicated bus interface 190 state machine 252 and disables the dedicated bus state machine 254.

이제, 공유 버스 상태 머신(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 bus state machine 252 is now described with reference to FIGS. 14-18. 14 shows a state diagram of one embodiment of the shared bus state machine 252 of FIG. 15 shows a timing diagram for the operation of one embodiment of the state machine output generator 258 of the state machine block 194 of FIG. 9 during a block read access over the shared bus. 16 shows a timing diagram for the operation of one embodiment of state machine output generator 258 of state machine block 194 over a shared bus. FIG. 17 shows a timing diagram for the operation of one embodiment of the state machine output generator 258 of the state machine block 194 of FIG. 9 during a read after a write access via the shared bus. 18 illustrates the operation of one embodiment of the state machine output generator 258 of the state machine block 194 of FIG. 9 during a read after write access via the shared bus when the shared bus grant signal is not locking the shared bus. The timing diagram is presented.

도 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 bus state machine 252 is defined by the values of five signals, which are (1) the shared bus access enable signal, and (2) the invalid signal. Reading of the data of the 2EDRR 226a, and (3) the stop request signal, (4) the shared bus grant signal, and (5) the lock shared bus signal. The shared bus access enable signal is a dedicated bus state machine enable signal generated by state machine control unit 250. In particular, control unit 250 allows processor 156 to perform external read or write operations via external data registers 226a or 228 and via shared bus 148 (external input / output access bus 182, EMAU registers). Generate an active access enable signal when directed via a bus 184, a read / write bus 186, and a signal of the sixteenth bit of the second control word.

또한, 공유 버스 상태 머신(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 bus state machine 252 generates an active read of data in the second EDRR 226a, which is an invalid signal when the processor initiates a single access read operation. The input notification logic circuit detects that the block mode signal is inactive and initiates a single access read operation when the processor requires an external read of the EDRR 226a. In addition, the input notification logic circuit of the shared bus state machine 252 is responsible for the data of the second EDRR 226a which is an invalid signal when the processor instructs the EMAU to start an initial prefetch read of the block read operation. Generates an active read. If the input notification logic circuit detects a request from the processor 156 to read the EDRR 226a after the processor writes a second control word to the ERAU 224, the input notification logic circuit causes the processor to read the block. Detect instructing the EMAU to begin an initial read of the operation.

한편, 프로세서(156)가 기록 동작을 요구하면(즉, 외부 데이터 기록 레지스터(228)와 통신을 개시하고 있으면), 상기 입력 통지 논리 회로는 유효하지 않은 신호(즉, 이 신호는 "0"의 값을 가지고 있음)인 제2EDRR(226)의 데이터의 인액티브 판독을 유지하게 된다. 프로세서(156)가 중간 액세스중에 초기 블록 판독 액세스를 인터럽트한 후에 블록 판독 액세스를 재개하면, 상기 입력 통지 논리 회로는 또한 유효하지 않은 신호인 제2EDRR(226a)의 데이터의 인액티브 판독을 유지하게 된다.On the other hand, if processor 156 requests a write operation (i.e., is initiating communication with external data write register 228), then the input notification logic circuit is not valid (i.e., this signal is " 0 " Has an value) and maintains an inactive read of the data of the second EDRR 226. If the processor 156 resumes block read access after interrupting an initial block read access during an intermediate access, the input notification logic circuitry will also maintain an inactive read of the data of the second EDRR 226a, which is an invalid signal. .

도 14에 또한 도시된 바와같이, 공유 버스 상태 머신(252)은 정지요구 신호와 전용 버스 액세스 인에이블 신호가 인액티브 상태에 있는 한, 아일들 상태(A)로 유지된다(즉, 순환한다). 하지만, 프로세서(156)가 외부 액세스를 개시하였고, 현재는 외부 데이터 레지스터(226a 또는 228)를 액세하고 있음을 감지한 후에 (즉, 액티브 P 버스 액세스 인에이블 신호를 발생한 후에), 출력 발생기(258)는 프로세서 클럭을 정지시킨다. 특히, 프로세서(156)가 초기 외부 액세스를 요구하였고 현재는 외부 데이터 레지스터(226a 또는 228)를 액세스하고 있고 공유 버스 상태 머신(252)이 아이들 상태(A)임을 출력 발생기(258)가 감지하면, 출력 발생기(258)는 상기 초기 감지 클럭 사이클의 로우 단계 동안에 정지 프로세서 라인(188)상의 정지 프로세서 신호를 액티브시킨다.As also shown in FIG. 14, shared bus state machine 252 remains in isle state A (ie, cycles) as long as the stop request signal and the dedicated bus access enable signal are in an inactive state. . However, after detecting that processor 156 has initiated an external access and is currently accessing an external data register 226a or 228 (ie, after generating an active P bus access enable signal), output generator 258. ) Stops the processor clock. In particular, if output generator 258 detects that processor 156 requested an initial external access and is currently accessing external data register 226a or 228 and shared bus state machine 252 is idle (A), Output generator 258 activates a stop processor signal on stop processor line 188 during the low phase of the initial sense clock cycle.

다음 클럭 사이클의 상승에지에서, 공유 버스 상태 머신(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 bus state machine 252 transitions to the request state B and activates the shared bus request signal (which feeds the arbiter 150 side to obtain permission for the shared bus). . At this point, the shared bus state machine remains in this state until the arbiter 150 grants access to the shared bus, that is, access to the EMAU. After the arbiter accepts the EMAU's shared bus request (that is, after the shared bus state machine 252 receives the active shared bus grant signal), the shared bus state machine 252 enters the state (for another full clock cycle). Keep b). During this last clock cycle of state B, output generator 258 activates the counter enable signal. On the rising edge of the clock cycle after this final state (B) clock cycle, state machine 252 is based on the value of the reading of the data of the invalid signal of second EDRR 226a (C) or state (D). Transitions to).

예컨대, 이제, (프로세서(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 processor 156 requires an initial read of a single access read or block read operation from second EDDR 226a). This will be described with reference to FIGS. 14, 15, and 17. As shown in these figures, if processor 156 requires an initial block read from second EDDR 226a, (1) output generator 258 reads shared bus during the low phase of the final state (B) clock cycle. Activate the enable signal, and (2) the shared bus state machine 252 goes from the request state B to the first prefetch state C at the rising edge of the clock cycle after the last state B clock cycle. Transition. During the clock cycle in which the high bus state machine 252 is maintaining the first prefetch state C, the output generator 258 begins to allow the bus interface 190 to store the first data word in the first EDRR 226b. The shared bus read enable signal is maintained.

다음 클럭 사이클의 상승 에지에서, 프로세서(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 output generator 258 deactivated the stop processor signal so that the processor 156 can begin receiving data stored in the second EDRR 126a. 252 transitions to the second prefetch state (E). During the next clock cycle, shared bus state machine 252 moves to access state (F). In this state, the processor is running, and state machine 252 is configured to determine whether the processor is currently requesting another external read / write operation via external data register 226a or 228. 182, the signals of the EMAU register bus 184, and the read / write bus 186. If the current processor instruction is not an external access instruction via an external data register 226a or 228 (ie, the dedicated bus access enable signal is not active), the shared bus state machine transitions to an idle state (A). For example, if the current processor instruction is program ERAU 224 or EWAU 230, then the shared bus state machine transitions from state F to state A, which means that the processor is no longer EDRR 226a or EDWR ( 228), the shared bus access enable signal is deactivated.

한편, 상기 현재 명령이 제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 bus state machine 252 maintains state F and performs read access. Also, as shown in Figures 14 and 17, if the current command is an access (i.e., write access) command to the external data write register 228, then the dedicated bus state machine 254 will return state (F). It maintains and performs a write operation based on the address of the EWAU 230.

(프로세서(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 processor 156 requires an external write to EDWR 228 and state machine 254 is in state A or when processor 156 resumes block read access after interrupting a previous block read access. The transition of the shared bus state machine 252 from state B) to state D) is now described with reference to FIGS. 14, 16, and 17. As shown in these figures, if the processor 156 requires an external write to the EDWR 228 (while the state machine 254 is idle in state A), the shared bus state machine 252 The transition from the required state B to the start state D is made at the rising edge of the clock cycle after the final state B clock cycle. During the low phase of the clock cycle while the shared bus state machine 252 is maintaining a start state D, the output generator 258 activates (1) the shared bus write enable signal and communicates with the processor EDWR 228. The signal is kept active until 1/2 clock cycles after the termination, and (2) the processor clock is started by deactivating the stop processor signal. Also, during the clock cycle in which the shared bus state machine 252 maintains the start state D, the output generator 258 deactivates the counter enable signal.

다음 클럭 사이클에서, 공유 버스 상태 머신(252)은 상태(F)를 천이되고, 출력 발생기(258)는 카운터 인에이블 신호를 다시 액티브시키고, 상기 프로세서가 EDWR(228)와의 통신을 정지할 때까지 이 신호를 액티브상태로 유지한다.In the next clock cycle, shared bus state machine 252 transitions to state F, output generator 258 reactivates the counter enable signal until the processor stops communicating with EDWR 228. Keep this signal active.

이 상태에서, 상태 머신(252)은 프로세서가 현재 외부 데이터 레지스터(226a 또는 228)를 통해 다른 외부 판독 또는 기록 동작을 요구하고 있는지를 결정하기 위해, 외부 입/출력 액세스 버스(182), EMAU 레지스터 버스(184), 및 입/출력 버스(186)상의 신호를 감시한다. 현재 프로세서 명령이 외부 데이터 레지스터(226a 또는 228)를 통한 외부 액세스 명령이 아니면(즉, 전용 버스 액세스 인에이블 신호가 액티브상태 명령이 아니면), 상기 전용 버스 상태 머신은 아이들 상태(A)로 천이된다. 한편, 상기 현재 명령이 외부 데이터 기록 레지스터(228)에 대한 다른 액세스명령이면(즉, 다른 기록 동작명령이면), 공유 버스 상태 머신(252)은 상태(F)를 유지하고 상기 인에이블 신호(즉, 카운터 인에이블 신호 및 공유 버스 기록 인에이블 신호)의 발생을 유지하며, 이에따라 버스 인터페이스(190)는 기록 동작을 수행할 수 있게 된다.In this state, the state machine 252 is configured to determine whether the processor is currently requesting another external read or write operation via the external data register 226a or 228, to the external input / output access bus 182, EMAU register. Signals on bus 184 and input / output bus 186 are monitored. If the current processor instruction is not an external access instruction through an external data register 226a or 228 (ie, the dedicated bus access enable signal is not an active state instruction), the dedicated bus state machine transitions to an idle state (A). . On the other hand, if the current instruction is another access instruction to the external data write register 228 (i.e. another write operation instruction), then the shared bus state machine 252 maintains state F and the enable signal (i.e. And a counter enable signal and a shared bus write enable signal), so that the bus interface 190 can perform a write operation.

또한, 도 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 bus state machine 252 may cause the processor to send an external data register. As long as 226a or 228 is accessed, the active counter enable signal is still maintained. However, during the low phase during the clock cycle of the current instruction, the output generator 258 deactivates the dedicated bus enable write signal, while the enable read signal of the dedicated bus is active, and the processor is enabled for the second EDRR 226a. It maintains this signal until it is 1/2 clock cycle after it has finished communicating with it. At this time, the EMAU initiates a read operation based on the address of the ERAU 224 in the next clock cycle. In this way, the external access device of the present invention can transition from a write operation to a read operation in only one clock cycle unless the processor loads a new address into the ERAU 224.

상기 프로세서가 블록 동작을 인터럽트를 한 때의 공유 버스 상태 머신(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 bus state machine 252 when the processor interrupts a block operation is similar to the operation of dedicated bus state machine 254 during such an interrupt. Further, in the above description of state transition of state machine 252, it is assumed that (1) the stop request signal is inactive, and (2) the arbiter does not remove the grant signal for the EMAU during external access. . Since these two assumptions are not always correct, a description of the operation of state machine 252 is only necessary if the stop request signal is active or if the arbiter removes the grant signal during external access. If the stop request signal is active and the state machine 252 is in an idle state (A) or an access state (F), the state machine 252 transitions to a stop state (H) on the rising edge of the next clock cycle. do. State transition 252 holds state H until the clock module removes the stop request signal prior to transition to state G or B in the next clock cycle. When the stop request signal becomes inactive and the shared bus access enable signal is active, state machine 252 transitions to state B. On the other hand, if the shared bus access enable signal is active, state machine 252 transitions from state H to state G when the stop request signal is removed. From state G, state machine 252 transitions to idle state A at the rising edge of the next clock cycle.

도 18에는 상기 공유 승인 신호가 제거되고 상기 프로세서가 상기 공유 버스를 로크시키지 않은 기록 액세스 동안에, 출력 발생기(258)의 일실시예의 동작에 대한 타이밍도가 제시되어 있다. 이 도면에 도시된 바와같이, 상기 중재기가 그 공유 버스 승인 신호를 제거하고 공유 버스 상태 머신이 액세스 상태(F)이고 프로세서(156)가 외부 액세스를 요구하고 있으면, 공유 버스 상태 머신(252)은 프로세서 클럭을 정지시키고, 상기 공유 버스 요구를 로우로 풀다운시키며, 아이들 상태(A)로 천이된 후 상태(B)를 요구한다. 일단, 상기 중재기가 상기 EMAU의 공유 버스 승인 신호로 복귀하면, 공유 버스 상태 머신은 앞서 언급한 기준을 기초로 상태(B)로부터 상태(C 또는 D)로 천이된다.18 shows a timing diagram for the operation of one embodiment of an output generator 258 during the write access in which the shared grant signal was removed and the processor did not lock the shared bus. As shown in this figure, if the arbitrator removes its shared bus grant signal and the shared bus state machine is in access state F and the processor 156 is requesting external access, then the shared bus state machine 252 is Stops the processor clock, pulls down the shared bus request low, transitions to the idle state (A), and requests state (B). Once the arbitrator returns to the shared bus grant signal of the EMAU, the shared bus state machine transitions from state B to state C or D based on the aforementioned criteria.

공유 버스(148)가 로크되고(즉, 제1제어워드의 제12비트와 제2제어워드의 제16비트가 세트되고), EMAU가 공유 버스 액세를 시작하면, 공유 버스 상태 머신(252)은 상기 공유 버스 승인을 거부하더라도 상기 요구를 로우로 풀다운시키지 않는다(즉, 공유 버브 상태 머신(252)은 상태(F)를 유지하거나 상태(C)로, 다음에 상태(E)로 천이되게 된다. 공유 버스 상태 머신(252)은 상기 프로세서가 제12비트를 클리어하면 그 요구를 로우로 풀다운시킬 뿐이다. 따라서, 상태 머신(252)을 상태(F)로 함으로써 그리고 상기 공유 버스를 로크함으로써, 프로세서(156)는 다중에 (1) 중재기의 허가를 구하지 않고 외부 기록 동작, 또는 (2) 중재기의 허가를 구하지 않고 외부 판독 동작(이 동작은 도 14에서 상태(F)로부터 상태(C)로의 천이로서 도시되어 있음)을 시작할 수 있다.When the shared bus 148 is locked (i.e., the 12th bit of the first control word and the 16th bit of the second control word are set), and the EMAU starts sharing bus access, the shared bus state machine 252 Rejecting the shared bus acknowledgment does not pull down the request low (ie, shared verb state machine 252 remains in state F or transitions to state C and then to state E). The shared bus state machine 252 only pulls down the request low when the processor clears the twelfth bit, thus, by bringing the state machine 252 to state F and by locking the shared bus, the processor ( 156 is a multiplexed external read operation (1) without obtaining the permission of the arbiter, or (2) an external read operation without obtaining the permission of the arbiter (this operation from state (F) to state (C) in FIG. Shown as a transition).

따라서, 본 발명의 외부 메모리 액세스 장치(140)는 다음과 같은 여러 이유로 인해 프로세서의 데이터 액세스 시간을 줄인다. 첫째로, 프로그램 메모리와 데이터 메모리를 분리함으로써, 프로세서(156)의 데이터 액세스 시간은 프로세서(156)와 프로그램 메모리(160)간의 통신에 영향을 미치지 않는다. 둘째로 데이터 워드가 판독 동작동안에 상기 프로세서를 위해 프리페치되므로, 상기 데이터 메모리 뱅크가 데이터 워드를 공급할 때까지 상기 프로세서는 아이들 상태로 대기할 필요는 없으며, 오히려 이전의 데이터 워드를 디코딩 및 실행하는 동안에 상기 EMAU가 다음의 데이터 워드를 프리페치하도록 할 수 있다. 셋째로, 상기 EMAU가 상기 데이터 메모리 뱅크를 액세스하기 위해 높은 용량성 버스를 구동하지 말아야 하므로, 상기 액세스 시간이 줄어든다. 넷째로, 상기 데이터 액세스 시간이 또한 최소화되는데, 이는 상기 컴퓨터 시스템의 다른 구성요소가 상기 데이터 뱅크를 액세스할 수 있도록 상기 데이터 액세스를 종료할 필요는 없으며, 오히려 상기 전용 버스를 통해 데이터 뱅크를 액세스할 수 있고 이에따라 다른 구성요소는 상기 공유 버스를 통해 다른 데이터 뱅크를 액세스할 수 있다.Accordingly, the external memory access device 140 of the present invention reduces the data access time of the processor for several reasons as follows. First, by separating the program memory and the data memory, the data access time of the processor 156 does not affect the communication between the processor 156 and the program memory 160. Secondly, since a data word is prefetched for the processor during a read operation, the processor does not need to wait for the data memory bank to supply a data word, but rather while decoding and executing the previous data word. The EMAU can be made to prefetch the next data word. Third, the access time is reduced because the EMAU must not drive a high capacitive bus to access the data memory bank. Fourth, the data access time is also minimized, which does not need to terminate the data access so that other components of the computer system can access the data bank, but rather access the data bank through the dedicated bus. As such, other components may access other data banks via the shared bus.

마지막으로, 본 발명의 외부 메모리 액세스 장치는 상기 프로세서가 전용 버스를 통해 특정 데이터 뱅크를 액세스할 수 있도록 해 주고 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 DMA 152 to refresh other memory banks through the shared bus. This is advantageous because very little memory capacity is required.

Claims (18)

프로세서가 제 1 외부 구성요소를 액세스할 수 있도록 해 주는 외부 구성요소 액세스 장치에 있어서,An external component access device for allowing a processor to access a first external component, the device comprising: (a) 외부 구성요소 액세스 유닛;(a) an external component access unit; (b) 상기 외부 구성요소 액세스 유닛을 상기 프로세서에 접속하는 외부 구성요소 액세스 유닛 버스;(b) an external component access unit bus connecting the external component access unit to the processor; (c) 상기 외부 구성요소 액세스 유닛을 상기 제 1 외부 구성요소에 접속하는 쌍방향 전용버스; 및(c) a bidirectional dedicated bus connecting the external component access unit to the first external component; And (d) 상기 외부 구성요소 액세스 유닛을 상기 제 1 외부 구성요소에 접속하고 제 2 외부 구성요소를 상기 제 1 외부 구성요소에 접속하는 쌍방향 공유버스;를 포함하며,(d) a bidirectional shared bus connecting the external component access unit to the first external component and connecting a second external component to the first external component; 여기에서 상기 프로세서는 상기 외부 구성요소 액세스 유닛을 상기 전용버스와 상기 공유버스중의 하나를 따라 상기 제 1 외부 구성요소를 액세스하도록 명령하고, 상기 제 1 외부 구성요소를 액세스하기 위해 상기 전용버스로의 유일한 액세스를 가지며,Wherein the processor instructs the external component access unit to access the first external component along one of the dedicated bus and the shared bus, and to the dedicated bus to access the first external component. Has only access to 상기 제 2 외부 구성요소는 상기 프로세서가 상기 제 1 외부 구성요소에 액세스중일 때 상기 제 1 외부 구성요소로의 액세스가 거부되는 것을 특징으로 하는 외부 구성요소 액세스 장치.And wherein said second external component is denied access to said first external component when said processor is accessing said first external component. 제 1 항에 있어서, 상기 외부 구성요소 액세스 유닛은 상기 프로세서가 상기 제 1 외부 구성요소로 외부 기록 동작을 수행하도록 상기 외부 구성요소 액세스 유닛에 요구할 때 상기 전용버스와 상기 공유버스중의 하나를 따라 상기 제 1 외부 구성요소에 데이터를 전송하고, 상기 외부 구성요소 액세스 유닛은 상기 프로세서가 상기 제 1 외부 구성요소로부터 외부 판독을 수행하도록 상기 외부 구성요소 액세스 유닛에 요구할 때 상기 전용버스와 상기 공유버스중의 하나를 따라 상기 제 1 외부 구성요소로부터 데이터를 수신하는 것을 특징으로 하는 외부 구성요소 액세스 장치.2. The system of claim 1, wherein the external component access unit follows one of the dedicated bus and the shared bus when the processor requests the external component access unit to perform an external write operation to the first external component. Transmits data to the first external component, the external component access unit requesting the external component access unit to perform an external read from the first external component when the dedicated bus and the shared bus And receive data from the first external component according to one of the following. 제 1 항에 있어서, 상기 공유버스에 연결된 공유 버스 중재기를 더 포함하며, 상기 공유버스 중재기는 상기 공유버스에 연결된 복수의 버스 마스터사이에 상기 공유버스의 제어를 할당하며, 여기에서 상기 외부 구성요소 액세스 유닛과 상기 제 2 외부 구성요소는 버스 마스터인 것을 특징으로 하는 외부 구성요소 액세스 장치.2. The apparatus of claim 1, further comprising a shared bus arbiter connected to the shared bus, wherein the shared bus arbiter assigns control of the shared bus among a plurality of bus masters connected to the shared bus, wherein the external component And an access unit and said second external component are bus masters. 제 3 항에 있어서, 상기 공유버스 중재기가 상기 공유버스에 액세스를 요구하는 버스 마스터에 상기 공유버스의 제어를 할당하기 전에, 상기 공유버스 중재기는 다른 버스 마스터가 공유버스에 액세스중인지를 결정하고 만약 그렇다면 상기 요구 버스 마스터가 상기 액세스중인 버스 마스터보다 높은 우선권 상태를 갖는지를 결정하고, 상기 요구 버스 마스터가 상기 액세스중인 버스 마스터보다 높은 우선권 상태를 갖는다면 상기 공유버스 중재기는 상기 액세스중인 버스 마스터가 상기 공유버스로의 액세스를 종료하게 하는 것을 특징으로 하는 외부 구성요소 액세스 장치.4. The shared bus arbiter of claim 3, wherein before the shared bus arbiter assigns control of the shared bus to a bus master that requires access to the shared bus, the shared bus arbiter determines if another bus master is accessing the shared bus. If so, the request bus master determines whether the request bus master has a higher priority state than the accessing bus master, and if the request bus master has a higher priority state than the accessing bus master, the shared bus arbiter determines that the access bus master External component access device, characterized in that to terminate the access to the shared bus. 제 1 항에 있어서, 상기 공유버스와 상기 제 1 외부 구성요소에 연결된 외부 구성요소 제어기를 더 포함하며, 여기에서 상기 제 1 외부 구성요소와 통신하기에 앞서, 상기 외부 구성요소 액세스 유닛과 상기 제 2 외부 구성요소는 상기 외부 구성요소 제어기가 상기 전용버스와 상기 공유버스중의 하나에 상기 제 1 외부 구성요소를 할당하도록 요구하기 위해 상기 외부 구성요소 제어기를 액세스하는 것을 특징으로 하는 외부 구성요소 액세스 장치.2. The apparatus of claim 1, further comprising an external component controller coupled to the shared bus and the first external component, wherein prior to communicating with the first external component, the external component access unit and the first component are further configured. 2 The external component accesses the external component controller to request that the external component controller allocate the first external component to one of the dedicated bus and the shared bus. Device. 제 5 항에 있어서, 상기 전용버스와 상기 공유버스에 연결된 제 3 외부 구성요소를 더 포함하며, 상기 외부 구성요소 액세스 유닛은 상기 제 2 외부 구성요소가 상기 제 3 외부 구성요소와 상기 공유버스를 통하여 통신하는 동안 상기 전용버스와 상기 공유버스중의 하나를 통하여 상기 제 3 외부 구성요소와 통신하는 것을 특징으로 하는 외부 구성요소 액세스 장치.6. The apparatus of claim 5, further comprising a third external component connected to the dedicated bus and the shared bus, wherein the external component access unit further comprises the second external component connecting the third external component and the shared bus. And communicate with the third external component via one of the dedicated bus and the shared bus while communicating via the external bus. 제 6 항에 있어서, 상기 외부 구성요소 액세스 유닛은 상기 전용버스를 통하여 상기 제 1 외부 구성요소와 통신하고 상기 제 2 외부 구성요소는 상기 공유버스를 통하여 상기 제 3 외부 구성요소와 통신하는 것을 특징으로 하는 외부 구성요소 액세스 장치.7. The apparatus of claim 6, wherein the external component access unit communicates with the first external component via the dedicated bus and the second external component communicates with the third external component via the shared bus. External component access device. 제 1 항에 있어서, 상기 제 2 외부 구성요소는 복수의 외부 구성요소를 상기 공유버스를 통하여 상기 제 1 외부 구성요소에 연결하는 직접 메모리 액세스 유닛인 것을 특징으로 하는 외부 구성요소 액세스 장치.The apparatus of claim 1, wherein the second external component is a direct memory access unit that connects a plurality of external components to the first external component via the shared bus. 제 2 항에 있어서, 외부 판독 동작과 외부 기록 동작중의 하나를 개시하도록 상기 외부 구성요소 액세스 유닛에 요구하기에 앞서, 상기 프로세서는 상기 외부 구성요소 액세스 유닛을 프로그래밍하는 것을 특징으로 하는 외부 구성요소 액세스 장치.3. The external component of claim 2, wherein prior to requesting the external component access unit to initiate one of an external read operation and an external write operation, the processor programs the external component access unit. Access device. 제 9 항에 있어서, 상기 외부 구성요소 액세스 유닛을 프로그래밍하기 위해 상기 프로세서는 (i) 상기 전용버스와 상기 공유버스중의 하나를 통하여 상기 외부 구성요소 액세스 유닛이 외부 액세스를 실행하도록 통지하고, (ii) 상기 제 1 외부 구성요소에 있는 초기 어드레스를 상기 외부 구성요소 액세스 유닛에 공급하는 것을 특징으로 하는 외부 구성요소 액세스 장치.10. The system of claim 9, wherein to program the external component access unit, the processor (i) informs the external component access unit to perform external access via one of the dedicated bus and the shared bus, ii) supplying an initial address in said first external component to said external component access unit. 제 10 항에 있어서, 상기 프로세서는 외부 액세스가 단일 액세스 동작과 블록 액세스 동작중의 하나인 것을 상기 외부 구성요소 액세스 유닛에 통지함으로써 상기 외부 구성요소 액세스 유닛을 더 프로그래밍하는 것을 특징으로 하는 외부 구성요소 액세스 장치.11. The external component of claim 10, wherein the processor further programs the external component access unit by notifying the external component access unit that the external access is one of a single access operation and a block access operation. Access device. 제 4 항에 있어서, 상기 외부 구성요소 액세스 유닛이 외부 판독 또는 기록 동작을 개시하도록 요구하기에 앞서, 상기 프로세서는 상기 공유버스를 통하여 상기 외부 구성요소 액세스 유닛의 액세스를 종료하기 위해 상기 공유버스 중재기의 요구를 무시하도록 상기 외부 구성요소 액세스 유닛을 프로그래밍하는 것을 특징으로 하는 외부 구성요소 액세스 장치.5. The shared bus arbitration of claim 4, wherein prior to the external component access unit requiring the external component access unit to initiate an external read or write operation, the processor terminates the access of the external component access unit via the shared bus. And program the external component access unit to ignore an existing request. 제 2 항에 있어서, 상기 외부 구성요소 액세스 유닛은 상기 제 1 외부 구성요소로부터 데이터를 프리페치하기 위해 상기 프로세서의 동작을 중지함으로써 외부 판독 동작을 시작하는 것을 특징으로 하는 외부 구성요소 액세스 장치.3. The apparatus of claim 2, wherein the external component access unit initiates an external read operation by suspending operation of the processor to prefetch data from the first external component. 제 9 항에 있어서,The method of claim 9, (a) 상기 프로세서가 상기 외부 구성요소 액세스 유닛과 상기 전용버스를 통하여 상기 제 1 외부 구성요소에 액세스한다면, 상기 외부 구성요소 액세스 장치는 상기 외부 구성요소 액세스 유닛이 기록 동작을 수행할 때 X+Y 클럭 사이클에서, 그리고 판독 동작을 수행할 때 X+Y+Z 클럭 사이클에서 상기 제 1 외부 구성요소에 있는 X 위치에 액세스하게 하고,(a) If the processor accesses the first external component via the external component access unit and the dedicated bus, the external component access device may execute X + when the external component access unit performs a write operation. Access the X position in the first external component in the Y clock cycle and in the X + Y + Z clock cycle when performing a read operation, (b) 상기 프로세서가 상기 외부 구성요소 액세스 유닛와 상기 공유버스를 통하여 상기 제 1 외부 구성요소에 액세스한다면, 상기 외부 구성요소 액세스 장치는 상기 외부 구성요소 액세스 유닛이 기록 동작을 수행할 때 X+Y+W 클럭 사이클에서, 그리고 판독 동작을 수행할 때 X+Y+Z+W 클럭 사이클에서 상기 제 1 외부 구성요소에 있는 X 위치에 액세스하게 하며,(b) if the processor accesses the first external component via the external component access unit and the shared bus, then the external component access device performs X + Y when the external component access unit performs a write operation. Access the X position in the first external component in the + W clock cycle and in the X + Y + Z + W clock cycle when performing a read operation, (c) 여기에서 Y는 상기 외부 구성요소 액세스 유닛을 프로그래밍하는데 필요한 클럭 사이클의 수를 나타내고, Z는 판독 동작동안 데이터를 프리페치하는데 필요한 클럭 사이클의 수를 나타내며, W는 상기 외부 구성요소 액세스 유닛이 상기 공유버스에 액세스하는 것을 상기 공유버스 중재기가 승인할 때까지 상기 외부 구성요소 액세스 유닛이 대기하는 클럭 사이클의 수를 나타내는 것을 특징으로 하는 외부 구성요소 액세스 장치.(c) where Y represents the number of clock cycles required to program the external component access unit, Z represents the number of clock cycles required to prefetch data during a read operation, and W represents the external component access unit. And a number of clock cycles for which the external component access unit waits until the shared bus arbiter approves access to the shared bus. 제 14 항에 있어서, 상기 외부 구성요소 액세스 유닛은15. The apparatus of claim 14, wherein the external component access unit is (a) 상기 외부 구성요소 액세스 유닛 버스, 상기 공유버스, 및 상기 전용버스에 연결된 공유 및 전용버스 인터페이스; 및(a) a shared and dedicated bus interface coupled to the external component access unit bus, the shared bus, and the dedicated bus; And (b) 상기 외부 액세스 유닛 버스와 상기 공유 및 전용버스 인터페이스에 연결된 상태 머신 블록;을 포함하며,(b) a state machine block coupled to the external access unit bus and the shared and dedicated bus interface, 여기에서 상기 프로세서는 상기 외부 구성요소 액세스 유닛 버스를 따라 상기 공유 및 전용버스 인터페이스에 프로그래밍 데이터를 제공함으로써 상기 외부 구성요소 액세스 유닛을 프로그래밍하고, 상기 프로세서로부터 외부 액세스 요구를 수신한 후에 상기 공유 및 전용버스 인터페이스는 상기 전용버스와 상기 공유버스중의 하나를 통하여 상기 제 1 외부 구성요소에 액세스하며,Wherein the processor programs the external component access unit by providing programming data to the shared and dedicated bus interface along the external component access unit bus and receives the external access request from the processor. A bus interface accesses the first external component via one of the dedicated bus and the shared bus, 상기 상태 머신 블록은 상기 공유 및 전용버스 인터페이스에 인에이블 신호 공급에 의해 외부 액세스 동작동안 상기 공유 및 전용버스 인터페이스의 동작을 제어하며, 상기 프로세서가 상기 공유 및 전용버스 인터페이스에 제공하는 신호와 상기 공유 및 전용버스 인터페이스가 상기 상태 머신 블록에 공급하는 신호에 응답하여 상기 인에이블 신호를 발생하는 것을 특징으로 하는 외부 구성요소 액세스 장치.The state machine block controls the operation of the shared and dedicated bus interface during an external access operation by supplying an enable signal to the shared and dedicated bus interface, the signal provided by the processor to the shared and dedicated bus interface and the sharing. And generate the enable signal in response to a signal supplied by the dedicated bus interface to the state machine block. 제 15 항에 있어서,The method of claim 15, (a) 상기 공유 및 전용버스를 상기 제 1 외부 구성요소에 액세스하도록 명령하는 프로그래밍 및 외부 액세스 명령문을 상기 프로세서로부터 수신하기 위해 상기 프로세서에 접속하는 공유 및 전용버스 인터페이스; 및(a) a shared and dedicated bus interface that connects to the processor to receive programming and external access statements from the processor instructing the shared and dedicated bus to access the first external component; And (b) 상기 공유 및 전용버스 인터페이스에 연결된 상태 머신 블록;을 더 포함하며,(b) a state machine block coupled to the shared and dedicated bus interface; 상기 상태 머신 블록은 상기 프로세서에 접속하고, 상기 프로세서가 상기 공유 및 전용버스 인터페이스에 공급하는 신호와 상기 공유 및 전용버스 인터페이스가 상기 상태 머신 블록에 공급하는 신호에 응답하여 인에이블 신호 발생에 의한 외부 액세스 동작동안 상기 공유 및 전용버스 인터페이스의 동작을 제어하는 것을 특징으로 하는 외부 구성요소 액세스 장치.The state machine block is connected to the processor and externally generated by an enable signal in response to a signal supplied by the processor to the shared and dedicated bus interface and a signal supplied by the shared and dedicated bus interface to the state machine block. And external device access device for controlling the operation of the shared and dedicated bus interface during an access operation. 제 16 항에 있어서, 상기 공유 및 전용버스 인터페이스는 프리페치된 데이터를 저장하는 복수의 프리페치 레지스터를 포함하고, 상기 공유 및 전용버스 인터페이스는 상기 프로세서가 초기 외부 판독 동작을 요구하고 상기 머신 블록이 상기 프로세서의 동작을 중지할 때 데이터를 프리페치하는 것을 특징으로 하는 외부 구성요소 액세스 장치.17. The system of claim 16, wherein the shared and dedicated bus interface includes a plurality of prefetch registers for storing prefetched data, wherein the shared and dedicated bus interface requires an initial external read operation by the processor and the machine block. And prefetch data when the processor stops operating. (a) 프로그램 메모리;(a) program memory; (b) 프로그램 메모리 버스를 통하여 상기 프로그램 메모리에 연결된 프로세서;(b) a processor coupled to the program memory through a program memory bus; (c) 외부 구성요소 액세스 유닛 버스에 의해 상기 프로세서에 연결된 외부 구성요소 액세스 유닛;(c) an external component access unit coupled to the processor by an external component access unit bus; (d) 상기 외부 구성요소 액세스 유닛을 외부 메모리에 접속하는 쌍방향 전용버스; 및(d) a bidirectional dedicated bus connecting the external component access unit to an external memory; And (e) 상기 외부 구성요소 액세스 유닛과 외부 구성요소를 상기 외부 메모리에 접속하는 쌍방향 공유버스;를 포함하며,(e) a bidirectional shared bus connecting the external component access unit and the external component to the external memory; 여기에서 상기 프로세서는 상기 외부 구성요소 액세스 유닛이 상기 전용버스와 상기 공유버스중의 하나를 따라 상기 외부 메모리에 액세스하도록 명령하고, 상기 프로세서는 또한 상기 외부 메모리에 액세스하기 위한 상기 전용버스를 유일한 액세스로 가지며, 상기 외부 구성요소는 상기 프로세서가 상기 외부 메모리에 액세스중일 때 상기 외부 메모리로의 액세스를 거부하는 것을 특징으로 하는 컴퓨터 시스템.Wherein the processor instructs the external component access unit to access the external memory along one of the dedicated bus and the shared bus, and the processor also uniquely accesses the dedicated bus for accessing the external memory. And wherein the external component denies access to the external memory when the processor is accessing the external memory.
KR1019970703837A 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 KR100255551B1 (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (2)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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