KR100567147B1 - Data transmission method and device - Google Patents

Data transmission method and device Download PDF

Info

Publication number
KR100567147B1
KR100567147B1 KR1019980710502A KR19980710502A KR100567147B1 KR 100567147 B1 KR100567147 B1 KR 100567147B1 KR 1019980710502 A KR1019980710502 A KR 1019980710502A KR 19980710502 A KR19980710502 A KR 19980710502A KR 100567147 B1 KR100567147 B1 KR 100567147B1
Authority
KR
South Korea
Prior art keywords
bus
data
dma
memory access
direct memory
Prior art date
Application number
KR1019980710502A
Other languages
Korean (ko)
Other versions
KR20000022093A (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 소니 컴퓨터 엔터테인먼트 인코포레이티드
Priority to KR1019980710502A priority Critical patent/KR100567147B1/en
Publication of KR20000022093A publication Critical patent/KR20000022093A/en
Application granted granted Critical
Publication of KR100567147B1 publication Critical patent/KR100567147B1/en

Links

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
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • G06F13/4045Coupling between buses using bus bridges where the bus bridge performs an extender function
    • 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/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal

Abstract

제 1 버스(11)와 제 2 버스(12)는 버퍼 메모리를 갖는 버스 중계기(13)를 통해서 접속되고, 각각의 버스(11, 12)에는 DMA(다이렉트 메모리 액세스) 컨트롤러(22, 27)가 접속된다. 버스 중계기(13)는 각각의 DMA 컨트롤러(22, 27)에 DMA 요구를 출력할 수 있고, 각각의 CPU(22, 27)에 의해 이들의 DMA 요구를 마스크할 수 있다. DMA 컨트롤러(22)는 버스(11) 상의 데이터를 버스 중계기(13)내의 버퍼 메모리의 사이에서 DMA 전송하고, DMA 컨트롤러(27)는 상기 버퍼 메모리와 버스(12)의 사이에서 DMA 전송한다. CPU(22)는 버스 중계기(13)의 DMA 요구를 마스크하고, 직접 버퍼를 액세스하는 것에 의해서 DMA 기능을 체크할 수 있다. 이에 의해서 다른 버스 사이에서 버퍼를 통해서 DMA 전송하는 시스템의 디버그를 용이하게 한다.The first bus 11 and the second bus 12 are connected via a bus repeater 13 having a buffer memory, and each of the buses 11 and 12 has a DMA (direct memory access) controller 22, 27. Connected. The bus repeater 13 can output DMA requests to the respective DMA controllers 22 and 27, and can mask their DMA requests by the respective CPUs 22 and 27. The DMA controller 22 transfers the data on the bus 11 between the buffer memories in the bus repeater 13 and the DMA controller 27 transfers the DMA between the buffer memory and the bus 12. The CPU 22 can check the DMA function by masking the DMA request of the bus repeater 13 and directly accessing the buffer. This facilitates debugging a system that transfers DMA through a buffer between different buses.

Description

데이터 전송 방법 및 장치Data transmission method and device

본 발명은 2개의 다른 버스에 각각 접속된 디바이스나 메모리 사이에서 데이터를 전송하기 위한 데이터 전송 방법 및 장치에 관한 것이고, 특히 데이터 전송이 정상으로 기능하고 있는가 여부의 진단을 할 수 있는 데이터 전송 방법 및 장치에 관련한다.The present invention relates to a data transfer method and apparatus for transferring data between a device or a memory respectively connected to two different buses, and more particularly, to a data transfer method capable of diagnosing whether data transfer is functioning normally. Relates to the device.

종래에 있어서, 메인 버스와 서브 버스와 같이 다른 버스를 게이트웨이 등의 버스 중계기를 통해서 접속하고, 메인 버스에 설치된 DMA(다이렉트 메모리 액세스) 컨트롤러에 의해 이들 버스 사이에서 데이터의 DMA 전송을 행하는 것이 알려져 있다.Background Art Conventionally, it is known to connect other buses such as a main bus and a subbus through a bus repeater such as a gateway, and perform DMA transfer of data between these buses by a DMA (direct memory access) controller provided in the main bus. .

예를 들면, 도 1에 나타내는 구성에 있어서, 메인 버스(101)와 서브 버스(102)는 각각 버스 게이트웨이 등의 버스 중계기(103)에 접속되어 있다. 메인 버스(101)에는 CPU나 각종 인터페이스 등의 디바이스(104), DMA 컨트롤러(105)가 접속되고, 서브 버스(102)에는 디바이스(106), ROM 등의 메모리(107)가 접속되어 있다.For example, in the structure shown in FIG. 1, the main bus 101 and the sub bus 102 are each connected to the bus repeater 103, such as a bus gateway. The main bus 101 is connected with devices 104 such as a CPU and various interfaces, and a DMA controller 105, and the sub-bus 102 is connected with a device 106 and a memory 107 such as a ROM.

이 도 1의 예에서는, 메인 버스(101) 상의 DMA 컨트롤러(105)가 버스 중계기(103)를 통해서 서브 버스(102)도 제어하는 것에 의해 예를 들면 디바이스(104)와 디바이스(106) 사이의 DMA 전송을 실현하고 있다. 이와 같이, 다른 버스(101, 102) 사이에서도 각각의 버스의 액세스 시간이 같은 정도이면 불필요한 대기 시간이 없고 효율 좋은 데이터 전송을 할 수 있다.In the example of FIG. 1, the DMA controller 105 on the main bus 101 also controls the sub-bus 102 via the bus repeater 103, for example, between the device 104 and the device 106. DMA transfer is realized. In this manner, even if the access times of the respective buses are the same between the different buses 101 and 102, there is no unnecessary waiting time and efficient data transfer can be performed.

그런데, 1개의 시스템 내에서 다른 버스가 공존하는 경우에는 버스 폭이나 데이터 액세스 속도가 다른 경우가 많고, 예를 들면 도 1의 예에서는 메인 버스(101)가 32비트 폭으로 고속, 서브 버스(102)가 16비트 폭으로 저속으로 되어 있다.By the way, when different buses coexist in one system, the bus width and data access speed are often different. For example, in the example of FIG. 1, the main bus 101 is 32 bits wide and the high-speed sub-bus 102 is used. ) Is 16 bits wide and slow.

이와 같이 버스 폭이나 데이터 액세스 속도가 다른 버스 사이에서 DMA 전송을 시키는 경우에는 고속의 버스, 예를 들면 도 1의 메인 버스(101) 상에서 불필요한 대기 시간을 발생시킨다는 결점이 있다.As described above, when DMA transfer is performed between buses having different bus widths or data access rates, there is a drawback that unnecessary latency is generated on a high-speed bus, for example, the main bus 101 of FIG.

그러므로, 2개의 다른 버스 사이를 버퍼 메모리를 통해서 접속하고, 이 버퍼 메모리를 통해서 DMA 전송을 행하는 것이 고려되지만 DMA 전송이 정상으로 기능하고 있는가 여부를 진단하고자 하면 각각의 버스의 CPU를 디버그 모드로 동작시키지 않으면 안되므로 번거롭다.Therefore, it is considered to connect between two different buses through a buffer memory and perform a DMA transfer through this buffer memory, but if you want to diagnose whether the DMA transfer is functioning normally, run the CPU of each bus in debug mode. It is cumbersome to have to.

또한, 데이터 전송이 정상으로 행해지지 않는 경우, 양쪽의 버스의 CPU나 진단 프로그램에 결함이 있는 것이 상정되므로 원인의 발견이 매우 곤란하게 되는 경우가 많다.In addition, in the case where data transfer is not performed normally, it is assumed that the CPU and the diagnostic program of both buses are defective, so that the cause is often very difficult to find.

특히, 1개의 LSI 내에 CPU나, DMA 컨트롤러 등을 설치하는 경우에는 긴 개발 기간이 걸리며 진단의 일정 등도 큰 문제가 된다.In particular, when a CPU, a DMA controller, or the like is installed in one LSI, a long development period is required, and a schedule of diagnosis is a big problem.

실제로 LSI를 설계 시작(試作)하기 전에는 주변기기를 포함하는 소프트웨어 시뮬레이션을 하여 가능한 많은 기능을 확인하게 되지만, 시뮬레이션에는 시간이 걸리므로 충분한 검증을 할 수 없고, 시작 LSI 등이 만들어진 후 단시간에 문제점을 조사하지 않으면 안 된다는 실정도 있으므로 상기와 같은 디버그의 곤란성이 제품 개발의 애로점이 되는 일이 많다.Before actually starting the design of the LSI, software simulations including peripherals are used to verify as many functions as possible.However, the simulation takes time, so sufficient verification cannot be performed, and the problem is investigated shortly after the start LSI is made. Because of the fact that this must be done, the above difficulty of debugging is often a bottleneck for product development.

또한, 디바이스 사이에서 데이터 전송을 하는 경우에는 각각의 디바이스에 대해 알맞은 데이터의 배열 방식이 있고, 이에 대응하기 위해 여분의 데이터를 떼어버린다던가, 전송된 데이터 열의 사이에 다른 데이터를 삽입한다던가 할 필요가 있다.In addition, when data is transferred between devices, there is a proper arrangement of data for each device, and in order to cope with this, it is necessary to separate the extra data or insert another data between the transmitted data strings. There is.

메모리 상에 전개된 데이터 열에 대해서, 상기와 같은 조작을 CPU가 하고자 하면, 일단 CPU의 레지스터에 판독한 후, 다시 기록하지 않으면 안되므로 매우 효율이 나쁘고, 이것은 CPU가 다른 작업을 하고자 하는 시간을 삭감하는 것으로도 되고 바람직하지 않다.When the CPU intends to perform the above operation on the data string developed on the memory, it is very inefficient because the CPU must read the register once and then write it again, which reduces the time that the CPU wants to do other work. It may or may not be desirable.

여기서, DMA 컨트롤러가 데이터 전송 시에 전송원(元)의 어드레스나 전송처 어드레스를 매회 변경하는 것도 고려되고 이 경우에는 전송원의 어드레스와 전송량의 리스트를 준비하고 DMA 컨트롤러가 매회 그 리스트에 따라서 DMA 전송을 하는 것이지만 전송 사양 테이블을 CPU가 준비하지 않으면 안되고 매회 전송 사양을 체크하기 위해 오버 헤드가 발생하는 등의 난점이 있다.It is also contemplated that the DMA controller changes the transfer source address or transfer destination address each time during data transfer, in which case a list of transfer source addresses and transfer amounts is prepared and the DMA controller transfers the DMA according to the list each time. However, the CPU has to prepare the transfer specification table, and there is an overhead such as an overhead to check the transfer specification each time.

또한, 상기한 바와 같은 1개의 시스템 내에 다른 버스가 공존하는 경우에는 버스 폭이 다른 경우가 많고, 예를 들면 도 1의 예에서는 메인 버스(101)가 32비트 폭으로 고속, 서브 버스(102)가 16비트 폭으로 저속으로 되어 있다. 이와 같이 버스 폭이 다른 버스 사이에서 DMA 전송을 시키는 경우에도 여분의 데이터를 떼어버린다던가 전송된 데이터 열의 사이에 다른 데이터를 삽입하는 경우가 있고, 이 경우에도 간단하게 데이터 구조나 어드레스의 단락의 변경을 행할 수 있는 것이 바람직하다.In addition, when different buses coexist in one system as described above, the bus widths are often different. For example, in the example of FIG. 1, the main bus 101 is 32 bits wide and the high-speed subbus 102 is used. Is slow at 16 bits wide. Even when DMA transfers are made between buses with different bus widths in this way, extra data may be removed or other data may be inserted between the transferred data strings. It is desirable to be able to do this.

도 1은 2 버스를 이용하는 시스템의 종래 예를 나타내는 블록도.1 is a block diagram showing a conventional example of a system using two buses.

도 2는 본 발명의 실시의 형태의 개략 구성을 나타내는 블록도.2 is a block diagram showing a schematic configuration of an embodiment of the present invention.

도 3은 본 발명의 실시의 형태에 이용되는 버스 중계기의 내부 구성의 한 예를 나타내는 블록도.3 is a block diagram showing an example of an internal configuration of a bus repeater used in an embodiment of the present invention.

도 4는 본 발명의 실시의 형태의 동작의 한 예를 설명하기 위한 플로차트.4 is a flowchart for explaining an example of the operation of the embodiment of the present invention.

도 5는 본 발명의 실시의 형태의 동작의 다른 예를 설명하기 위한 플로차트.5 is a flowchart for explaining another example of the operation of the embodiment of the present invention.

도 6은 전송전의 데이터 열의 구체 예를 나타내는 도면.6 is a diagram illustrating a specific example of a data string before transmission.

도 7은 전송시의 일부를 생략하여 얻은 데이터 열의 구체 예를 나타내는 도면.Fig. 7 is a diagram showing a specific example of a data string obtained by omitting part of the transfer.

도 8은 전송시의 다른 데이터를 추가하여 얻어진 데이터 열의 구체 예를 나타내는 도면.Fig. 8 is a diagram showing a specific example of a data string obtained by adding other data at the time of transmission.

도 9는 텍스처 화상 상의 전송할 데이터 영역의 한 예를 나타내는 도면.9 is a diagram illustrating an example of a data area to be transmitted on a texture image.

도 10은 도 9의 메모리 상에서의 데이터 배열을 나타내는 도면.10 is a diagram showing the data arrangement on the memory of FIG.

도 11은 몇 개의 데이터 열에 헤더를 부가한 한 예를 나타내는 도면.11 is a diagram illustrating an example in which a header is added to some data columns.

도 12는 도 11에서 부가되는 헤더의 구체예를 나타내는 도면.FIG. 12 is a diagram showing a specific example of the header added in FIG. 11. FIG.

도 13은 본 발명의 실시의 형태가 적용된 시스템의 한 예를 나타내는 블록도.13 is a block diagram illustrating an example of a system to which an embodiment of the present invention is applied.

(발명의 개시)(Initiation of invention)

본 발명은 이와 같은 실정을 감안하여 이루어진 것이고, 다른 2개의 버스 사이에서 DMA 전송 기능의 진단이 용이하게 행해지고, 문제가 있는 장소의 특정이 단시간에 행해질 수 있는 데이터 전송 방법 및 장치의 제공을 목적으로 한다.SUMMARY OF THE INVENTION The present invention has been made in view of such a situation, and an object thereof is to provide a data transfer method and apparatus in which a diagnosis of a DMA transfer function can be easily performed between two different buses, and a problem location can be specified in a short time. do.

또한, 본 발명의 다른 목적은 다른 2개의 버스 사이에서의 데이터 전송 시에 CPU에 부담을 걸지 않고 간단하게 전송 데이터 블록의 사이즈를 변경할 수 있고, 작업 효율의 향상을 도모할 수 있는 데이터 전송 방법 및 장치를 제공하는 것이다.Another object of the present invention is to provide a data transfer method capable of simply changing the size of a transfer data block without burdening the CPU when transferring data between two different buses, and improving work efficiency. To provide a device.

즉, 본 발명은 상기와 같은 문제를 해결하기 위해 제 1 버스 및 제 2 버스와 이들 제 1 버스 및 제 2 버스에 각각 접속된 버퍼 메모리를 갖는 버스 중계 수단과, 상기 제 1 버스에 접속된 제 1 DMA(다이렉트 메모리 액세스) 제어 수단과, 상기 제 1 버스에 접속된 제 1 데이터 처리 수단(CPU)을 갖고, 상기 버스 중계 수단은 상기 제 1 DMA 제어 수단에 대해서 DMA 요구를 출력하는 기능과, 이 DMA 요구를 상기 제 1 데이터 처리 수단에 의해 마스크하는 기능을 갖고, 상기 제 1 데이터 처리 수단에 의해 상기 버스 중계 수단의 DMA 요구를 마스크하고 상기 버스 중계 수단내의 상기 버퍼 메모리를 직접 액세스하는 것을 특징으로 하고 있다.In other words, the present invention provides a bus relay means having a first bus and a second bus, a buffer memory connected to the first bus and a second bus, and a first bus connected to the first bus to solve the above problems. One DMA (direct memory access) control means, a first data processing means (CPU) connected to the first bus, the bus relay means for outputting a DMA request to the first DMA control means; And having a function of masking this DMA request by the first data processing means, masking the DMA request of the bus relay means by the first data processing means, and directly accessing the buffer memory in the bus relay means. I am doing it.

여기서, 상기 제 2 버스에는 제 2 DMA(다이렉트 메모리 액세스) 제어 수단과 제 2 데이터 처리 수단(CPU)이 접속되고, 상기 제 1, 제 2 DMA 제어 수단은 상기 버스 중계 수단내의 버퍼 메모리에 대해서 데이터의 판독/기록을 행하는 것으로 상기 제 1, 제 2 버스 사이의 데이터 전송을 행하고, 상기 버스 중계 수단은 상기 제 2 DMA 제어 수단에 대해서 DMA 요구를 출력하는 기능과, 이 DMA 요구를 상기 제 2 데이터 처리 수단에 의해 마스크하는 기능을 갖고, 상기 제 2 데이터 처리 수단에 의해 상기 버스 중계 수단의 DMA 요구를 마스크하고 상기 버스 중계 수단내의 상기 버퍼 메모리를 직접 액세스하는 것을 들 수 있다.Here, a second DMA (direct memory access) control means and a second data processing means (CPU) are connected to the second bus, and the first and second DMA control means provide data to the buffer memory in the bus relay means. Reading / writing the data to transfer data between the first and second buses, and the bus relaying means outputs a DMA request to the second DMA control means, and transmits the DMA request to the second data. And a function of masking by the processing means, masking the DMA request of the bus relaying means by the second data processing means, and directly accessing the buffer memory in the bus relaying means.

이 경우, 상기 제 1, 제 2 데이터 처리 수단(CPU)의 한 쪽에 의해 상기 버스 중계기에 있어서의 다른 쪽의 버스 상의 DMA 요구를 마스크하고, 상기 다른 쪽의 버스 상에서 상기 버스 중계기내의 상기 버퍼 메모리를 액세스하는 것을 들 수 있다.In this case, one of the first and second data processing means (CPUs) masks the DMA request on the other bus in the bus repeater, and the buffer memory in the bus repeater on the other bus. And access.

또한, 본 발명은 서로 다른 제 1 버스와 제 2 버스와의 사이를 버퍼 메모리를 갖는 버스 중계 수단을 통해서 접속하고, 제 1 버스에 제 1 DMA(다이렉트 메모리 액세스) 제어 수단을, 제 2 버스에 제 2 DMA 제어 수단을 각각 접속하고, 이들 제 1, 제 2의 DMA 제어 수단에 의해 제 1 버스에 접속된 메모리나 디바이스와 제 2 버스에 접속된 메모리나 디바이스의 사이의 DMA 전송을 상기 버퍼 메모리를 통해서 행하게 함과 동시에 상기 버스 중계 수단으로부터의 상기 제 1 또는 상기 제 2 DMA 제어 수단에의 DMA 요구를 데이터 처리 수단(CPU)에 의해 마스크하고 상기 데이터 처리 수단에 의해 상기 버스 중계 수단내의 상기 버퍼 메모리를 직접 액세스하는 것을 특징으로 한다.In addition, the present invention connects the first bus and the second bus to each other via a bus relay means having a buffer memory, and connects a first DMA (direct memory access) control means to the first bus. The second DMA control unit is connected to each other, and the DMA transfer is performed between the memory or device connected to the first bus and the memory or device connected to the second bus by these first and second DMA control means. The DMA request from the bus relay means to the first or second DMA control means by a data processing means (CPU) and the buffer in the bus relay means by the data processing means. And access the memory directly.

이 경우, 상기 제 1 버스에 제 1 데이터 처리 수단을, 상기 제 2 버스에 제 2 데이터 처리 수단을 각각 설치하고, 상기 제 1 버스 상의 DMA 요구를 상기 제 1 데이터 처리 수단이 마스크하고, 상기 제 2 버스 상의 다이렉트 메모리 액세스 요구를 상기 제 2 데이터 처리 수단이 마스크하고, 상기 제 1, 제 2 데이터 처리 수단은 각각의 버스 상의 제 1, 제 2 다이렉트 메모리 액세스 제어 수단과 같은 전송 조건으로 상기 버스 중계기 내의 상기 버퍼 메모리를 직접 액세스하는 것을 들 수 있다.In this case, a first data processing means is provided on the first bus, a second data processing means is provided on the second bus, and the first data processing means masks a DMA request on the first bus. The second data processing means masks a direct memory access request on a two bus, and the first and second data processing means are subject to the bus repeater with the same transfer conditions as the first and second direct memory access control means on each bus. Direct access to the buffer memory therein.

또한, 상기 제 2 버스 상의 DMA 요구를 상기 제 1 데이터 처리 수단이 마스크하고, 상기 제 1 데이터 처리 수단은 제 2 버스 측에서 상기 버스 중계기 내의 상기 버퍼 메모리를 직접 액세스하는 것을 들 수 있다.The first data processing means masks a DMA request on the second bus, and the first data processing means directly accesses the buffer memory in the bus repeater on the second bus side.

제 1, 제 2 버스 상의 각각의 DMA 제어 수단에 의해 각각의 버스상의 메모리나 디바이스와 버스 중계 수단의 버퍼 메모리의 사이에서 DMA 전송하는 것에 의해 이 버퍼 메모리를 통해서 다른 버스 상의 각각의 메모리나 디바이스 사이에서의 DMA 전송을 할 수 있다. 이 때, 각각의 버스 상의 DMA 요구를 각각의 버스 상의 데이터 처리 수단(CPU)이 마스크하고, 직접 상기 버퍼 메모리를 액세스하는 것에 의해 DMA 기능을 체크할 수 있다. 또한 제 1 버스 상의 데이터 처리 수단이 제 2 버스 상의 DMA 요구를 마스크하고 제 2 버스 측에서 상기 버퍼 메모리를 액세스하는 것에 의해 제 2 버스의 DMA 기능을 체크할 수 있다.Between each memory or device on another bus through this buffer memory by DMA transfer between the memory or device on each bus by means of each DMA control means on the first and second buses and the buffer memory of the bus relay means. DMA transfer at At this time, the DMA function can be checked by masking the DMA request on each bus by the data processing means (CPU) on each bus and directly accessing the buffer memory. The data processing means on the first bus can also check the DMA function of the second bus by masking the DMA request on the second bus and accessing the buffer memory on the second bus side.

또한, 본 발명은 상기한 과제를 해결하기 위해 서로 다른 제 1 버스와 제 2 버스를 버퍼 메모리를 갖는 버스 중개 수단을 통해서 접속하고 상기 제 1 버스와 상기 제 2 버스의 사이에서의 데이터 전송을 상기 버스 중계 수단 내의 버퍼 메모리를 통해서 하고, 상기 버스 중계 수단은 데이터 전송 시에 더미 데이터(dummy data)를 부가하는 것에 의해 전송 데이터 블록의 사이즈를 크게 하는 것, 또는 상기 버스 중계 수단은 데이터 전송 시에 일부의 데이터를 생략하는 것에 의해 전송 데이터 블록의 사이즈를 작게 하는 것을 특징으로 한다.In addition, the present invention is to solve the above problems by connecting different first bus and second bus via a bus intermediation means having a buffer memory and the data transfer between the first bus and the second bus; Via the buffer memory in the bus relay means, the bus relay means increases the size of the transmission data block by adding dummy data at the time of data transfer, or the bus relay means at the time of data transfer. The size of the transmission data block is reduced by omitting some data.

여기서, 상기 제 1 버스에 접속된 제 1 다이렉트 메모리 액세스 제어 수단에 의해 상기 제 1 버스와 상기 버스 중계 수단내의 버퍼 메모리의 사이에서 데이터 전송 제어하고, 상기 제 2 버스에 접속된 제 2 다이렉트 메모리 액세스 제어 수단에 의해 상기 제 2 버스와 상기 버스 중계 수단내의 버퍼 메모리의 사이에서 데이터 전송 제어하는 것을 들 수 있다. 또한 버스 중계 수단은 데이터 전송 시에 상기 버퍼 메모리내의 데이터가 없어져도 출력 요구가 있을 때, 더미 데이터를 출력하는 것에 의해 전송 데이터 블록의 사이즈를 크게 한다던가, 데이터 전송 시에 출력 측의 데이터 전송이 종료된 시점에서 상기 버퍼 메모리내의 데이터가 잔존하고 있을 때에 상기 잔존 데이터를 파기하는 것에 의해 전송 데이터 블록의 사이즈를 작게 하는 것을 들 수 있다.Here, data transfer control is performed between the first bus and the buffer memory in the bus relay means by a first direct memory access control means connected to the first bus, and a second direct memory access connected to the second bus. And controlling data transfer between the second bus and the buffer memory in the bus relay means by the control means. In addition, the bus relay means increases the size of the transfer data block by outputting dummy data when there is an output request, even if data in the buffer memory is lost during data transfer, or the data transfer on the output side is terminated at the time of data transfer. In this case, when the data in the buffer memory remains, discarding the remaining data reduces the size of the transfer data block.

전송을 중개(仲介)하는 버스 중계기에 전송 데이터의 블록 사이즈를 크게 한다던가, 작게 한다던가 하는 기능을 부가하는 것에 의해 데이터 전송시에 간단한 데이터 구성의 변경을 할 수 있다.By adding a function such as increasing or decreasing the block size of the transmission data to the bus repeater which relays the transmission, a simple data configuration can be changed during data transmission.

<발명을 실시하기 위한 최상의 형태>Best Mode for Carrying Out the Invention

이하, 본 발명에 관련되는 실시의 형태에 대해서 도면을 참조하면서 설명한다.EMBODIMENT OF THE INVENTION Hereinafter, embodiment which concerns on this invention is described, referring drawings.

도 2는 본 발명에 관련되는 실시의 형태가 되는 데이터 전송 방법이 적용되는 시스템 구성을 나타내는 블록도이다.2 is a block diagram showing a system configuration to which the data transmission method according to the embodiment of the present invention is applied.

이 도 2에 있어서 제 1 버스(11) 및 제 2 버스(12)는 FIFO 등의 버퍼 메모리를 이용하여 이루어지는 버스 중계기(13)에 각각 접속되고, 이 버스 중계기(13)를 통해서 버스(11, 12) 사이에서 서로 데이터의 전송을 할 수 있다. 제 1 버스(11)에는 CPU(21), DMA(다이렉트 메모리 액세스) 컨트롤러(22), 디바이스(23), 메모리(24) 등이 접속되어 있고, 제 2 버스(12)에는 CPU(26), DMA 컨트롤러(27), 디바이스(28), 메모리(29) 등이 접속되어 있다.In FIG. 2, the first bus 11 and the second bus 12 are respectively connected to a bus repeater 13 made of a buffer memory such as a FIFO, and the bus 11, via the bus repeater 13. 12) Data can be transferred between each other. The first bus 11 is connected with a CPU 21, a DMA (direct memory access) controller 22, a device 23, a memory 24, and the like, and the second bus 12 is provided with a CPU 26, The DMA controller 27, the device 28, the memory 29, and the like are connected.

디바이스(23)는 DMA 컨트롤러(22)에 대해서, 디바이스(28)는 DMA 컨트롤러(27)에 대해서 각각 DMA 요구를 출력할 수 있다. 이들 디바이스(23, 28)로서는 예를 들면 화상이나 음성의 인코더, 디코더, 그래픽 처리를 위한 그래픽 엔진, 화상 처리나 음성 처리 IC 등 또는 각각의 인터페이스를 통하는 하드디스크 장치, 광자기디스크 장치, 플로피 디스크 장치, CD-ROM 장치 등의 주변 기기를 들 수 잇다. 버스 중계기(13)는 DMA 컨트롤러(22, 27)에 대해서 각각 DMA 요구(DREQ: DMA request)를 출력할 수 있다. 이들 DMA 요구는 복수의 DMA 채널 중의 어느 DMA 채널인가를 지정할 수 있다. 또한, 버스 중계기(13)는 예를 들면 버스(12) 상의 CPU(26)에 대해서 버스(12)의 사용권의 요구(BREQ: 버스 request)를 출력하고, CPU(26)로부터의 버스 사용 허가의 응답(BACK: 버스 acknowledge)을 수신할 수 있다.The device 23 can output the DMA request to the DMA controller 22 and the device 28 to the DMA controller 27, respectively. These devices 23 and 28 are, for example, encoders and decoders for images and audio, graphics engines for graphics processing, image processing and audio processing ICs, or the like, or hard disk devices, magneto-optical disk devices, floppy disks via respective interfaces. Peripheral devices such as devices and CD-ROM devices. The bus repeater 13 may output a DMA request (DREQ) to the DMA controllers 22 and 27, respectively. These DMA requests can specify which DMA channel among a plurality of DMA channels. In addition, the bus repeater 13 outputs a request for use of the bus 12 (BREQ: bus request) to the CPU 26 on the bus 12, for example. A BACK (bus acknowledgment) can be received.

이와 같은 도 2의 시스템에 이용되는 버스 중계기(13)의 구성의 한 예를 도 3에 나타낸다. 이 도 3에 있어서, 상기 도 2의 제 1 버스(11)는 데이터 버스(11a)와 어드레스·제어 버스(11b)로 나누고, 상기 제 2 버스(12)는 데이터 버스(12a)와 어드레스·제어 버스(12b)로 나누어서 도시하고 있다. 버스 중계기(13) 내에는 제 1 버스(11)의 데이터 버스(11a)에 접속되는 내부 버스(31)와, 제 2 버스(12)의 데이터 버스(12a)에 접속되는 내부 버스(32)가 설치되고, 이들 내부 버스(31, 32)에는 FIFO(first in first out:선입 선출) 메모리(33)가 접속되어 있다. 또한 버퍼 제어 유닛(34)을 이들 내부 버스(31, 32)에 접속하도록 하여도 된다. 버퍼 제어 유닛(34)은 제 1 버스(11)의 어드레스·제어 버스(11b) 및 제 2 버스의 어드레스·제어 버스(12b)와도 접속되어 있다. 또한, 버퍼 제어 유닛(34)에는 상기 도 2의 DMA 컨트롤러(22, 27)와의 사이에서 DMA 요구(DREQ)나 채널 지정 등을 하기 위한 제어 신호 라인이 접속되어 있다.An example of the structure of the bus repeater 13 used for such a system of FIG. 2 is shown in FIG. In Fig. 3, the first bus 11 of Fig. 2 is divided into a data bus 11a and an address control bus 11b, and the second bus 12 is divided into a data bus 12a and an address control. The figure is divided into buses 12b. In the bus repeater 13, an internal bus 31 connected to the data bus 11a of the first bus 11 and an internal bus 32 connected to the data bus 12a of the second bus 12 are provided. FIFO (first in first out) memory 33 is connected to these internal buses 31 and 32. The buffer control unit 34 may also be connected to these internal buses 31 and 32. The buffer control unit 34 is also connected to the address control bus 11b of the first bus 11 and the address control bus 12b of the second bus. Further, a control signal line for making a DMA request (DREQ), a channel designation, or the like is connected to the buffer control unit 34 with the DMA controllers 22 and 27 shown in FIG.

마스크 플래그(35)는 버스(11)측의 DMA를 금지하기 위한 플래그이고 도 2의 CPU(21)의 제어에 의해 이 플래그가 ON 또는 "1"로 되어 있을 때에는 버퍼 제어 유닛(34)에서 도 2의 DMA 컨트롤러(22)에 DMA 요구(DREQ)는 출력되지 않는다. 마스크 플래그(36)는 버스(12)측의 DMA를 금지하기 위한 플래그이고 도 2의 CPU(26)에 의해서 이 플래그가 ON 또는 "1"로 되어 있을 때에는 버퍼 제어 유닛(34)으로부터 도 2의 DMA 컨트롤러(27)에의 DMA 요구(DREQ)는 출력되지 않는다.The mask flag 35 is a flag for prohibiting DMA on the bus 11 side, and when the flag is set to ON or " 1 " under the control of the CPU 21 in FIG. The DMA request DREQ is not output to the DMA controller 22 of 2. The mask flag 36 is a flag for prohibiting DMA on the bus 12 side, and when the flag is set to ON or " 1 " The DMA request DREQ to the DMA controller 27 is not output.

DREQ 비트(37 및 38)는 각각의 버스(11 및 12)에 대한 DMA 요구의 ON/OFF(또는 "1"/"0")를 나타내는 플래그이고, CPU(21, 22)의 어느 쪽으로부터도 판독할 수 있다. 이들 DREQ 비트(37 및 38)의 플래그는 상기 마스크 플래그(35, 36)가 ON이여도 마스크되지 않고, 버스 중계기(13)로부터 각각의 DMA 컨트롤러(22, 27)에의 DMA 요구(DREQ)에 나타나지 않는 DMA 요구의 상태를 각각의 CPU(21, 26)에서 판독할 수 있다.The DREQ bits 37 and 38 are flags indicating ON / OFF (or "1" / "0") of DMA requests for the respective buses 11 and 12, and from either of the CPUs 21 and 22, respectively. Can be read. The flags of these DREQ bits 37 and 38 are not masked even when the mask flags 35 and 36 are ON, and appear in the DMA request (DREQ) from the bus repeater 13 to the respective DMA controllers 22 and 27. The status of the unsuccessful DMA request can be read by each of the CPUs 21 and 26.

버스 게이트웨이(39)는 도 2의 버스(11)측의 CPU(21)가 버스(12)를 액세스하기 위한 내부 버스(31과 32)를 접속하는 것이다. 이들 마스크 플래그(35, 36), DREQ 비트(37, 38) 및 버스 게이트웨이(39)는 버퍼 제어 유닛(34)과 접속되어 있다.The bus gateway 39 connects the internal buses 31 and 32 for the CPU 21 on the bus 11 side of FIG. 2 to access the bus 12. These mask flags 35 and 36, the DREQ bits 37 and 38 and the bus gateway 39 are connected to the buffer control unit 34.

이 도 3에 나타내는 버스 중계기(13)에 있어서 FIFO 메모리(33)는 버퍼의 역할을 하는 메모리이고, 버스 제어 유닛(34)에 의해 액세스되는 버스(11, 12) 즉, 이들에게 접속되는 내부 버스(31, 32)에 대해서 데이터의 입출력을 제어된다. 버퍼 제어 유닛(24)은 FIFO 메모리(33)의 버스 액세스 동작을 제어함과 합께 각각의 버스(11, 12)의 DMA 컨트롤러(22, 27)에 대해서 DMA 요구(DREQ)를 출력하고, 그 응답(DACK: DMA acknowledge)을 수신한다. 이 DMA 요구는 복수의 DMA 채널의 1개를 지정하여 출력할 수 있다. DMA 컨트롤러(22, 27)로부터의 DMA 채널 선택 정보도 이 버퍼 제어 유닛(34)에 보내진다.In the bus repeater 13 shown in FIG. 3, the FIFO memory 33 is a memory serving as a buffer, and the buses 11 and 12 accessed by the bus control unit 34, that is, internal buses connected to them. Input / output of data is controlled for (31, 32). The buffer control unit 24 controls the bus access operation of the FIFO memory 33 and outputs a DMA request (DREQ) to the DMA controllers 22 and 27 of the respective buses 11 and 12, and responds thereto. (DACK: DMA acknowledge) is received. This DMA request can designate and output one of a plurality of DMA channels. DMA channel selection information from the DMA controllers 22 and 27 is also sent to this buffer control unit 34.

또한, 예를 들면 CPU(21)이 버스(12)의 어드레스를 액세스하면 버스 중계기(13)의 버퍼 제어 유닛(34)이 버스(12)의 CPU(26)에 대해서 버스(12)의 사용권의 요구(BREQ: 버스 request)를 출력한다. CPU(26)는 이 버스 요구에 따라서 버스(12)의 사용을 허가하는 응답(BACK: 버스 acknowledge)을 버스 중계기(13)의 버퍼 제어 유닛(34)에 보낸다. 그 후, CPU(21)는 버스 중계기(13)의 내부 버스(32)측의 마스크 플래그(36), FIFO(33) 및 버스(12) 상의 DMA 컨트롤러(27), 디바이스(28), 메모리(29) 등을 액세스할 수 있다.Further, for example, when the CPU 21 accesses the address of the bus 12, the buffer control unit 34 of the bus repeater 13 causes the CPU 26 of the bus 12 to use the right to use the bus 12. Print a request (BREQ). The CPU 26 sends a buffer acknowledgment (BACK: bus acknowledgment) to the buffer control unit 34 of the bus repeater 13 in accordance with this bus request. The CPU 21 then has a mask flag 36 on the internal bus 32 side of the bus repeater 13, a FIFO 33 and a DMA controller 27 on the bus 12, a device 28, a memory ( 29) and the like.

그런데, 제 1 버스(11)와 제 2 버스(12)의 사이에서 버스 중계기(13)를 통해서 DMA 전송을 할 경우에는 DMA 컨트롤러(22 및 27)의 DMA의 설정(예를 들면 데이터 사이즈 등)이 모순 없이 대응하고 있을 필요가 있다. CPU(21)는 DMA 컨트롤러(22)에 대해서, 또한 CPU(26)는 DMA 컨트롤러(27)에 대해서 각각의 버스 상의 DMA의 설정을 한다.By the way, when DMA transfer is performed between the first bus 11 and the second bus 12 via the bus repeater 13, the DMA setting of the DMA controllers 22 and 27 (e.g., data size, etc.) It is necessary to respond without this contradiction. The CPU 21 sets the DMA on the respective buses for the DMA controller 22 and the CPU 26 for the DMA controller 27.

예를 들면, 제 1 버스(11)의 메모리(24)에서 제 2 버스(12)의 메모리(28)에 DMA에 의해 데이터 전송을 행하는 경우, 제 1 버스(11)의 DMA 컨트롤러(22)에는 메모리(24)에서 버스 중계기(13)에의 DMA에 대해서, 또한 제 2 버스(12)의 DMA 컨트롤러(27)에는 버스 중계기(13)에서 메모리(29)에의 DMA에 대해서 각각 같은 데이터 사이즈(데이터 량)로 대응하는 DMA 채널이 되도록 설정될 필요가 있다. 이들의 설정이 된 후의 처리 순서는 도 4와 같이 된다.For example, when data transfer is performed by the DMA from the memory 24 of the first bus 11 to the memory 28 of the second bus 12, the DMA controller 22 of the first bus 11 is used. The same data size (data amount) for DMA from the memory 24 to the bus repeater 13 and for the DMA from the bus repeater 13 to the memory 29 in the DMA controller 27 of the second bus 12, respectively. It is necessary to set so as to become a corresponding DMA channel. The processing sequence after these settings are as shown in FIG.

이 도 4에 있어서 최초의 스텝(S61)에서 버스 중계기(13)에서 DMA 컨트롤러(22)에 대해서 DMA 요구(DREQ)를 행한다. 다음의 스텝(S62)에서 DMA 컨트롤러(22)는 CPU(21)에서 버스(11)의 사용권을 요구(BREQ)를 하여 버스 사용권을 받아서, 메모리(24)에서 버스 중계기(13)에의 DMA 전송을 한다. 다음의 스텝(S63)에서는 버스 중계기(13)는 DMA 컨트롤러(27)에 대해서 DMA 요구(DREQ)를 행한다. 다음의 스텝(S64)에서는 DMA 컨트롤러(27)는 CPU(26)에서 버스(12)의 사용권을 요구(BREQ)를 하여 버스 사용권을 받고, 버스 중계기(13)에서 메모리(29)에의 DMA 전송을 한다.In FIG. 4, the bus repeater 13 makes a DMA request (DREQ) to the DMA controller 22 in the first step S61. In the next step S62, the DMA controller 22 requests (BREQ) the license for the bus 11 from the CPU 21, receives the bus license, and transfers the DMA from the memory 24 to the bus repeater 13. do. In the next step S63, the bus repeater 13 makes a DMA request (DREQ) to the DMA controller 27. In the next step S64, the DMA controller 27 requests (BREQ) the license for the bus 12 from the CPU 26, receives the bus license, and transfers the DMA from the bus repeater 13 to the memory 29. do.

또한, 제 2 버스(12)상의 디바이스(28)에서 제 1 버스(11) 상의 디바이스(23)에 데이터를 DMA 전송하는 경우에는 DMA 컨트롤러(27)에는 디바이스(28)에서 버스 중계기(13)에의 DMA에 대해서, 또한 DMA 컨트롤러(22)에는 버스 중계기(13)에서 디바이스(23)에의 DMA에 대해서 각각 같은 데이터 사이즈로 대응하는 DMA 채널이 되도록 설정될 필요가 있다. 이들의 설정이 된 후의 처리 순서는 도 5와 같이 된다.In addition, when DMA transfers data from the device 28 on the second bus 12 to the device 23 on the first bus 11, the DMA controller 27 transfers the data from the device 28 to the bus repeater 13. For DMAs, the DMA controller 22 also needs to be set so that the DMA channels corresponding to the DMAs from the bus repeater 13 to the device 23 each have the same data size. The processing sequence after these settings are as shown in FIG.

이 도 5의 최초의 스텝(S71)에 있어서, 제 2 버스(12) 상의 디바이스(28)에는 DMA 컨트롤러(27)에 대해서 DMA 요구(DREQ)를 행한다. 다음의 스텝(S72)에서 버스 중계기(13)는 DMA 컨트롤러(27)에 대해서 DMA 요구(DREQ)를 행한다. 스텝(S73)에서 DMA 컨트롤러(27)는 디바이스(28) 및 버스 중계기(13)로부터의 각각의 DMA 요구를 수신한 것에 따라서 CPU(26)에 버스(12)의 사용권의 요구(BREQ)를 하여 버스 사용권을 받아, 디바이스(28)로부터 버스 중계기(13)에의 DMA 전송을 한다. 이때, CPU(26)가 버스 요구(BREQ)에 따라서 버스를 개방한 때의 응답을 DMA 컨트롤러(27)에 회신하고, DMA 컨트롤러(27)는 DMA 응답(DACK)을 버스 중계기(13) 등에 회신하는 것은 통상의 DMA 전송과 동일하다. 다음의 스텝(S74)에서, 버스 중계기(13)가 제 1 버스(11) 상의 DMA 컨트롤러(22)에 대해서 DMA 요구(DREQ)를 행하고, 스텝(S75)에서 디바이스(23)가 DMA 컨트롤러(22)에 대해서 DMA 요구(DREQ)를 행한다. 다음의 스텝(S76)에서 DMA 컨트롤러(22)는 디바이스(23) 및 버스 중계기(13)로부터의 각각의 DMA 요구를 수신하는 것에 따라서 CPU(21)에 버스(11)의 사용권을 요구(BREQ)를 행하여 버스 사용권을 받고, 버스 중계기(13)로부터 디바이스(23)에의 DMA 전송을 한다.In the first step S71 of FIG. 5, the device 28 on the second bus 12 issues a DMA request (DREQ) to the DMA controller 27. In the next step S72, the bus repeater 13 issues a DMA request (DREQ) to the DMA controller 27. In step S73, the DMA controller 27 makes a request (BREQ) of the usage right of the bus 12 to the CPU 26 in response to receiving respective DMA requests from the device 28 and the bus repeater 13. It receives the bus right to use and performs DMA transfer from the device 28 to the bus repeater 13. At this time, the CPU 26 returns the response when the bus is opened in response to the bus request BREQ to the DMA controller 27, and the DMA controller 27 returns the DMA response (DACK) to the bus relay 13 or the like. Is the same as a normal DMA transfer. In the next step S74, the bus repeater 13 makes a DMA request DREQ to the DMA controller 22 on the first bus 11, and in step S75 the device 23 makes the DMA controller 22 DMA request (DREQ). In the next step S76, the DMA controller 22 requests the CPU 21 the right to use the bus 11 in response to receiving respective DMA requests from the device 23 and the bus repeater 13 (BREQ). To receive the bus use right, and perform DMA transfer from the bus repeater 13 to the device 23.

또한, 버스 중계기(13)의 FIFO 등의 메모리 용량은 유한하므로, 그것을 넘는 크기의 데이터를 전송하는 경우에는 DMA 컨트롤러(22, 27)에 분할 전송의 설정을 하고, 상기 스텝 S61에서 S64까지, 또는 스텝 S71에서 S76까지를 반복하면 된다. 이 분할 전송시의 1회의 전송 단위(블록)는 버스 중계기(13)의 메모리 용량에 의해 정해진다.In addition, since the memory capacity of the FIFO or the like of the bus repeater 13 is finite, when transferring data having a size larger than that, the divided transfer is set to the DMA controllers 22 and 27, and the steps S61 to S64 above, or What is necessary is just to repeat step S71 to S76. One transmission unit (block) at the time of divided transmission is determined by the memory capacity of the bus repeater 13.

따라서, 버스 중계기(13)의 버퍼 메모리를 통해서 2개의 버스(11, 12) 사이에서 DMA 전송을 시키는 것으로서 다른 버스 사이의 DMA를 불필요한 대기 시간을 발생시키지 않고 행할 수 있다. 또한, 복수의 DMA 채널을 동시에 동작 가능하게 하는 것으로서 CPU의 처리를 간소화하고, 용이한 프로그래밍과 적은 오버헤드를 실현할 수 있다. 또한, 버스 사이의 중계기의 버퍼를 효율 좋게 활용할 수 있다. 또한, 다중 스레드(multi thread)의 프로그램을 간단하게 기록할 수 있다.Therefore, DMA transfer between the two buses 11 and 12 can be performed through the buffer memory of the bus repeater 13 without causing unnecessary waiting time. In addition, by enabling the operation of a plurality of DMA channels simultaneously, processing of the CPU can be simplified, and easy programming and low overhead can be realized. In addition, the buffers of the repeaters between the buses can be utilized efficiently. In addition, multi-threaded programs can be easily recorded.

그런데, 예를 들면 CPU(21)가 버스(12)를 액세스할 때, 버스 중계기(13)가 CPU(26)에 대해서 버스(12)의 사용권의 요구(BREQ)를 출력하고, 그 응답(BACK)을 수신하여 버스(12) 상의 DMA 컨트롤러(27), 디바이스(28), 메모리(29) 등을 액세스한다.By the way, for example, when the CPU 21 accesses the bus 12, the bus repeater 13 outputs a request BREQ of the usage rights of the bus 12 to the CPU 26, and the response BACK ) To access the DMA controller 27, the device 28, the memory 29, and the like on the bus 12.

이 때, 도 3의 FIFO(33)는 마스크 플래그(35, 36)에 의해 각각의 DMA 컨트롤러(22, 27)에 DMA 요구(DREQ)의 출력을 금지했을 때, 각각의 버스(11, 12)에서 I/O 액세스가 가능하게 되지만, 이 I/O 액세스는 DMA의 처리와 모순 없이 동등하게 행해지지 않으면 안된다. 따라서, 임의로 액세스할 수 있는 것이 아니고, DMA 액세스와 같은 조건으로 허가되는 것이 된다. 이 I/O 액세스의 조건의 한 예를 다음의 표 1에 나타낸다.At this time, when the FIFO 33 of FIG. 3 inhibits the output of the DMA request DREQ to the respective DMA controllers 22 and 27 by the mask flags 35 and 36, the respective buses 11 and 12 Although I / O access is enabled at, the I / O access must be performed equally without contradiction with the processing of DMA. Therefore, it is not accessible arbitrarily, but is permitted under the same conditions as DMA access. An example of the conditions for this I / O access is shown in Table 1 below.

[표 1]TABLE 1

이 표 1의 「신호 및 플래그의 상태」의 칸의 「*」는 임의(Don't care)의 상태를 나타내고 있다."*" In the column of the "signal and flag state" of this Table 1 shows the state of Don't care.

여기서, DMA 기능을 진단하는 조건으로는 이하와 같은 경우가 고려된다.Here, the following cases are considered as conditions for diagnosing the DMA function.

조건 #1: 버스(11), 버스(12) 모두 DMA 컨트롤러(22, 27)를 이용해서 데이터를 전송한다.Condition # 1: Both the bus 11 and the bus 12 transfer data using the DMA controllers 22 and 27.

조건 #2: 버스(11)측만 CPU(21)가 I/O 액세스로 데이터의 수수(授受)를 한다.Condition # 2: Only the bus 11 side receives the data from the CPU 21 by I / O access.

조건 #3: 버스(12)측만 CPU(26)가 I/O 액세스로 데이터의 수수를 한다.Condition # 3: Only the bus 12 side receives the data from the CPU 26 by I / O access.

조건 #4: 버스(11), 버스(12)측 모두 CPU(21, 26)가 I/O 액세스로 데이터의 수수를 한다.Condition # 4: The CPUs 21 and 26 receive data by I / O access on both the bus 11 and bus 12 sides.

조건 #5: 버스(12)측의 디바이스가 존재하지 않고, 또는 버스(12)측의 디바이스를 이용하지 않고, 버스(11)측은 DMA 컨트롤러(22)에 의한 DMA로, 버스(12)측은 CPU(21)가 I/O 액세스로 데이터 전송을 한다.Condition # 5: The device on the bus 12 side does not exist or the device on the bus 12 side is not used, the bus 11 side is DMA by the DMA controller 22, and the bus 12 side is a CPU. 21 performs data transfer with I / O access.

조건 #6: 버스(12)측의 디바이스가 존재하지 않고, 또는 버스(12)측의 디바이스를 이용하지 않고, 버스(11), 버스(12)측 모두 CPU(21)가 I/O 액세스로 데이터 전송한다.Condition # 6: There is no device on the bus 12 side, or the bus 21 and the bus 12 side both use the CPU 21 for I / O access without using the device on the bus 12 side. Data transfer.

또한, 현실의 디버그 순서로서는 조건 #6에서 반대의 순서로 DMA 기능의 진한을 하는 것이 상정된다.In addition, it is assumed that the actual debug order is to increase the DMA function in the reverse order under condition # 6.

상기한 각각의 조건 #1 내지 #6의 상태에서 다음과 같은 순서로 데이터 전송을 하여 어느 조건에서 문제가 일어나는가를 조사하는 것에 의해서 불완전한 또는 문제가 있는 기능 유닛을 특정할 수 있다.An incomplete or problematic functional unit can be specified by investigating in which condition a problem occurs by performing data transmission in the following order in the conditions of each of the above conditions # 1 to # 6.

조건 #1Condition # 1

마스크 플래그(35):off, 마스크 플래그(36):offMask flag (35): off, mask flag (36): off

전송 방향: *Transmission direction: *

CPU(21): DMAC(22)에 전송의 지시CPU 21: Instruction of transfer to DMAC 22

CPU(26): DMAC(27)에 전송의 지시.CPU 26: Instructs the DMAC 27 to transfer.

조건 #2Condition # 2

마스크 플래그(35):on, 마스크 플래그(36):offMask flag (35): on, mask flag (36): off

전송 방향: 버스(11)→버스(12)Transmission direction: bus (11) → bus (12)

CPU(26): DMAC(27)에 전송의 지시CPU 26: Instruction of transfer to DMAC 27

CPU(21): DREQ 비트(37)의 on을 기다려서 버스 중계기(13)에 데이터를 기록CPU 21: waits for the DREQ bit 37 to be written to bus repeater 13

전송 방향: 버스(12)→버스(11)Transmission direction: bus (12) → bus (11)

CPU(26): DMAC(27)에 전송의 지시CPU 26: Instruction of transfer to DMAC 27

CPU(21): DREQ 비트(37)의 on을 기다려서 버스 중계기(13)로부터 데이터를 판독.CPU 21: Read data from bus repeater 13 by waiting for the DREQ bit 37 to be on.

조건 #3Condition # 3

마스크 플래그(35):off, 마스크 플래그(36):onMask flag (35): off, mask flag (36): on

전송 방향: 버스(11)→버스(12)Transmission direction: bus (11) → bus (12)

CPU(21): DMAC(22)에 전송의 지시CPU 21: Instruction of transfer to DMAC 22

CPU(26): DREQ 비트(38)의 on을 기다려서 버스 중계기(13)로부터 데이터를 판독CPU 26 reads data from bus repeater 13 by waiting for the DREQ bit 38 to be on

전송 방향: 버스(12)→버스(11)Transmission direction: bus (12) → bus (11)

CPU(21): DMAC(22)에 전송의 지시CPU 21: Instruction of transfer to DMAC 22

CPU(26): DREQ 비트(38)의 on을 기다려서 버스 중계기(13)에 데이터를 기록.CPU 26: Waits for the DREQ bit 38 to turn on and write data to bus repeater 13.

조건 #4Condition # 4

마스크 플래그(35):on, 마스크 플래그(36):onMask flag (35): on, mask flag (36): on

전송 방향: 버스(11)→버스(12)Transmission direction: bus (11) → bus (12)

CPU(21): DREQ 비트(37)의 on을 기다려서 버스 중계기(13)에 데이터를 기록CPU 21: waits for the DREQ bit 37 to be written to bus repeater 13

CPU(26): DREQ 비트(38)의 on을 기다려서 버스 중계기(13)로부터 데이터를 판독CPU 26 reads data from bus repeater 13 by waiting for the DREQ bit 38 to be on

전송 방향: 버스(12)→버스(11)Transmission direction: bus (12) → bus (11)

CPU(26): DREQ 비트(38)의 on을 기다려서 버스 중계기(13)에 데이터를 기록CPU 26: Waits for on of DREQ bit 38 to write data to bus repeater 13

CPU(21): DREQ 비트(37)의 on을 기다려서 버스 중계기(13)로부터 데이터를 판독.CPU 21: Read data from bus repeater 13 by waiting for the DREQ bit 37 to be on.

조건 #5Condition # 5

마스크 플래그(35):off, 마스크 플래그(36):onMask flag (35): off, mask flag (36): on

전송 방향: 버스(11)→버스(12)Transmission direction: bus (11) → bus (12)

CPU(21): DMAC(22)에 전송의 지시CPU 21: Instruction of transfer to DMAC 22

: DREQ 비트(38)의 on을 기다려서 버스 중계기(13)로부터 데이터를 판독      : Read data from bus repeater 13 by waiting for the DREQ bit 38 to be on

전송 방향: 버스(12)→버스(11)Transmission direction: bus (12) → bus (11)

CPU(21): DMAC(22)에 전송의 지시CPU 21: Instruction of transfer to DMAC 22

: DREQ 비트(38)의 on을 기다려서 버스 중계기(13)에 데이터를 기록.       : Wait for ON of DREQ bit 38 to write data to bus repeater 13.

조건 #6Condition # 6

마스크 플래그(35):on, 마스크 플래그(36):onMask flag (35): on, mask flag (36): on

전송 방향: 버스(11)→버스(12)Transmission direction: bus (11) → bus (12)

CPU(21): DREQ 비트(37)의 on을 기다려서 버스 중계기(13)에 데이터를 기록CPU 21: waits for the DREQ bit 37 to be written to bus repeater 13

: DREQ 비트(38)의 on을 기다려서 버스 중계기(13)로부터 데이터를 판독      : Read data from bus repeater 13 by waiting for the DREQ bit 38 to be on

전송 방향: 버스(12)→버스(11)Transmission direction: bus (12) → bus (11)

CPU(21): DREQ 비트(38)의 on을 기다려서 버스 중계기(13)에 데이터를 기록CPU 21: Waits for on of DREQ bit 38 to write data to bus repeater 13

: DREQ 비트(37)의 on을 기다려서 버스 중계기(13)로부터 데이터를 판독.      : Wait for on of DREQ bit 37 to read data from bus repeater 13.

이들 6 종류의 조건 중 어느 조건에서 이상이 발생하는가를 확인하는 것으로서 고장 부분이나 문제점을 진단하는 것이다. 또한 버스(12) 상에 전송된 데이터는 CPU(21)가 버스(12)를 직접 액세스하는 것으로서 CPU(21)의 테스트 프로그램으로 확인할 수 있다.It is to check which of these six types of conditions causes an abnormality to diagnose a fault part or a problem. In addition, the data transmitted on the bus 12 can be confirmed by the test program of the CPU 21 as the CPU 21 directly accesses the bus 12.

따라서, 이와 같은 본 발명의 실시의 형태에 의하면 다른 버스(11, 12)사이의 DMA 전송 기능을 용이하게 디버그하고, 문제가 있는 장소를 특정할 수 있다. 또한 주체가 되는 버스(11) 상의 CPU(21)만으로 기능 확인을 할 수 있고, 또한 다른 쪽의 버스(12)에 직접 액세스하는 것에 의해 DMA 기능 이외의 디버그를 할 수도 있다.Therefore, according to this embodiment of the present invention, it is possible to easily debug the DMA transfer function between the different buses 11 and 12, and to specify a problem place. In addition, the function can be confirmed only by the CPU 21 on the bus 11 serving as the main body, and debugging other than the DMA function can be performed by directly accessing the other bus 12.

이상의 설명을 종합하면, 본 발명의 실시의 형태에 의하면, 제 1 버스 및 제 2 버스의 사이에 버퍼 메모리를 갖는 버스 중계 수단을 설치하고, 제 1 버스에 제 1 다이렉트 메모리 액세스(DMA) 제어 수단을, 제 2 버스에 제 2 다이렉트 메모리 액세스 제어 수단을 각각 접속하고, 이들 제 1, 제 2 다이렉트 메모리 액세스 제어 수단에 의해 제 1 버스에 접속된 메모리나 디바이스와 제 2 버스에 접속된 메모리나 디바이스와의 사이의 다이렉트 메모리 액세스 전송을 상기 버퍼 메모리를 통해서 행하게 함과 함께, 상기 버스 중계 수단으로부터의 상기 제 1 또는 상기 제 2 다이렉트 메모리 액세스 제어 수단에의 다이렉트 메모리 액세스 요구를 데이터 처리 수단(CPU)에 의해 마스크하고, 상기 데이터 처리 수단에 의해 상기 버스 중계 수단내의 상기 버퍼 메모리를 직접 액세스하는 것으로서 이 버퍼 메모리를 통해서 다른 버스 상의 각각의 메모리나 디바이스의 사이에서 다이렉트 메모리 액세스 전송을 할 수 있다. 이 때, 각각의 버스 상의 다이렉트 메모리 액세스 요구를 각각의 버스 상의 데이터 처리 수단(CPU)이 마스크하고, 직접 상기 버퍼 메모리를 액세스하는 것으로서 다이렉트 메모리 액세스 기능을 체크할 수 있다. 또한 제 1 버스 상의 데이터 처리 수단이 제 2 버스 상의 다이렉트 메모리 액세스 요구를 마스크하고, 제 2 버스측에서 상기 버퍼 메모리를 액세스하는 것으로서 제 2 버스의 다이렉트 메모리 액세스 기능을 체크할 수 있다.In summary, according to the embodiment of the present invention, a bus relay means having a buffer memory is provided between the first bus and the second bus, and the first direct memory access (DMA) control means is provided on the first bus. The second direct memory access control means is connected to the second bus, respectively, and the memory or device connected to the first bus by these first and second direct memory access control means and the memory or device connected to the second bus. Direct memory access transfer to and from the buffer memory and direct memory access request from the bus relay means to the first or second direct memory access control means are performed by the data processing means (CPU). Masked by and directly buffer the buffer memory in the bus relay means by the data processing means. By accessing, this buffer memory allows direct memory access transfers between individual memories or devices on different buses. At this time, the data processing means (CPU) on each bus mask the direct memory access request on each bus, and the direct memory access function can be checked by directly accessing the buffer memory. The data processing means on the first bus may also mask the direct memory access request on the second bus and check the direct memory access function of the second bus by accessing the buffer memory on the second bus side.

따라서, 다른 버스 사이의 다이렉트 메모리 액세스 전송 기능을 용이하게 디버그하고, 문제가 있는 장소를 특정할 수 있다. 또한, 주체가 되는 버스 상의 데이터 처리 수단만으로 기능 확인을 할 수 있고, 또한 다른 쪽의 버스에 직접 액세스하는 것으로서 다이렉트 메모리 액세스 기능 이외의 디버그를 할 수도 있다.Therefore, it is possible to easily debug the direct memory access transfer function between different buses and to specify a problem place. In addition, the function can be confirmed only by the data processing means on the main bus, and debugging other than the direct memory access function can also be performed by directly accessing the other bus.

다음으로, 다른 버스 사이에서 버퍼를 통해서 DMA 전송하는 시스템의 전송 데이터의 블록 사이즈를 간단하게 변경 가능하게 하는 예에 대해서 설명한다.Next, an example in which the block size of the transfer data of a system for DMA transfer through a buffer between different buses can be easily changed will be described.

이 예에 있어서, 버스 중계기(13)는 데이터 전송 시에 더미 데이터를 부가하던가, 일부의 데이터를 생략하는 것으로서 블록 사이즈를 변경하고 있다.In this example, the bus repeater 13 changes the block size by adding dummy data or omitting some data during data transfer.

즉, 상기 도 2 내지 도 5와 함께 설명한 바와 같이 DMA 전송시에 전송 시점으로부터의 연속된 데이터 열을 전부 전송 종점에 그대로 기록하는 경우, 1회의 전송 단위(블록)는 DMA 컨트롤러(22, 27) 모두 버스 중계기(13) 내의 FIFO(33)의 사이즈와 동일하게 설정하는 것에 의해서 제일 효율이 좋은 전송이 행해진다.That is, as described above with reference to FIGS. 2 to 5, when all the continuous data sequences from the transfer time point are recorded as they are at the transfer end point in the DMA transfer, one transfer unit (block) is used for the DMA controllers 22 and 27. By setting all the same as the size of the FIFO 33 in the bus repeater 13, the most efficient transmission is performed.

버스 중계기(13)는 버퍼[FIFO(33)]에 입력되는 들어오는 데이터 량과 나가는 데이터 량이 다른 경우, 다음과 같은 처리를 하는 기능을 갖고 있다.The bus repeater 13 has a function of performing the following processing when the amount of incoming and outgoing data input to the buffer (FIFO 33) is different.

즉, 제 1은 입력된 데이터가 버퍼[FIFO(33)]에서 없어져도 다시 출력 요구가 와 있는 경우에는 더미 데이터를 출력한다.That is, the first outputs dummy data when the output request comes back even if the input data is lost in the buffer (FIFO 33).

제 2는 입력된 데이터가 출력측의 DMA가 종료한 시점에서 버퍼[FIFO(33)]에 남아 있는 경우에는 남은 데이터를 파기한다.The second discards the remaining data when the input data remains in the buffer (FIFO 33) at the time when the DMA on the output side ends.

이와 같은 버스 중계기(13)의 기능에 의해서 전송하는 데이터 열의 구성을 변경할 수 있다. 이 데이터 열의 구성의 변경으로서는 DMA 전송 시에 더미 데이터를 추가하는 것에 의해 데이터 블록의 사이즈를 크게하는 것과, DMA 전송 시에 일부의 데이터를 생략하는 것에 의해 데이터 블록의 사이즈를 작게 하는 것을 들 수 있다.The structure of the data string to be transmitted can be changed by the function of the bus repeater 13 as described above. Examples of the configuration of the data string include increasing the size of the data block by adding dummy data during the DMA transfer, and reducing the size of the data block by omitting some data during the DMA transfer. .

이하, 버스 중계기(13)의 버퍼[FIFO(33)]의 용량이 64바이트인 경우의 구체예에 대해서 설명한다.Hereinafter, a specific example in the case where the capacity of the buffer (FIFO 33) of the bus repeater 13 is 64 bytes will be described.

예를 들면, 도 6에 나타내는 바와 같은 데이터 열(S1A, S1B, S1C, S2A, … )이, 도 2의 메모리(29)에 전개되어 있는 것으로 한다. 이 데이터 열(S1A, S1B, S1C, S2A, … )의 첨자의 A, B, C는 각각 종류가 다른 데이터를 나타내고, 이들 3종류의 데이터 중 B, C 종류의 데이터만을 도 2의 디바이스(23)에 전송하는 경우를 상정한다.For example, it is assumed that the data strings S 1A , S 1B , S 1C , S 2A ,..., As shown in FIG. 6 are developed in the memory 29 of FIG. 2. The subscripts A, B, and C of the data strings S 1A , S 1B , S 1C , S 2A ,... Represent data of different types, and only B and C types of data among these three types of data are shown in FIG. 2. It is assumed that the data is transmitted to the device 23.

이때, 디바이스(23)에는 도 7에 나타내는 바와 같은 데이터 열을 기록할 필요가 있다. 또한 데이터 열(S1A, S1B, S1C, S2A, … )의 첨자의 숫자 1, 2, 3, … 은, 1회의 전송 단위인 데이터 블록의 번호를 나타낸다.At this time, it is necessary to record the data string as shown in FIG. In addition, the data string (S 1A, S 1B, S 1C, S 2A, ...) the number of subscripts 1, 2, 3, ... of Indicates the number of data blocks that are one transmission unit.

DMA 컨트롤러(27)에는 상기 데이터(S1A, S1B, S1C, S2A, … )의 전부의 종류(A, B, C), 즉 32바이트를 1 블록으로서 데이터 열(S1B)에서 3블록분을 전송하는 것과 같은 DMA 전송의 설정을 한다. 이에 대해서, DMA 컨트롤러(22)에는 상기 B, C의 2 종류만, 즉, 24바이트를 1 블록으로서 3 블록분을 전송하도록 설정한다. 이에 의해서 종류 C의 데이터 열(S1C, S2C)에 계속되는 8바이트[데이터 열(S2A, S3A)]는 파기되므로 결과로서 도 7에 나타내는 바와 같은 데이터 열을 디바이스(23)에 기록할 수 있다.In the DMA controller 27, all types (A, B, C) of the data S 1A , S 1B , S 1C , S 2A ,. The same DMA transfer is set as transfer of blocks. In contrast, the DMA controller 22 is set so that only two types of B and C, i.e., 24 blocks are transmitted as one block for 24 bytes. As a result, 8 bytes (data strings S 2A and S 3A ) following the data strings S 1C and S 2C of the type C are discarded, and as a result, the data string as shown in FIG. 7 is recorded in the device 23. Can be.

다음으로, 도 2의 디바이스(23)로부터 도 7에 나타내는 바와 같은 서식의 데이터 열을 출력하고 이것을 예를 들면 메모리(29)에 전개함과 함께 도 8에 나타내는 바와 같이 종류(C)의 데이터 열의 다음에 종류(D)의 데이터 열을 삽입하고자 하는 경우를 상정한다.Next, the data string of the format as shown in FIG. 7 is output from the device 23 of FIG. 2, and this is expanded to the memory 29, for example, and as shown in FIG. Next, suppose that a data string of type D is to be inserted.

이 경우에는, DMA 컨트롤러(27)에는 36바이트를 1 블록으로서 3 블록 전송하도록 설정을 한다. 이 때, DMA 전송의 결과 상기 종류(B, C)의 24바이트의 데이터 열의 다음에 12바이트의 더미 데이터가 기록되므로 도 2의 CPU(26)에는 이 더미 데이터 영역에 상기 종류(D)의 데이터 열을 직접 기록할 수 있다. 즉, CPU(26)는 메모리(29) 상에서 데이터를 이동시키는 노력을 줄일 수 있다.In this case, the DMA controller 27 is set to transmit three blocks of 36 bytes as one block. At this time, as a result of the DMA transfer, the 12-byte dummy data is written after the 24-byte data string of the types B and C, so that the CPU 26 of FIG. 2 stores the data of the type D in this dummy data area. You can record the heat yourself. In other words, the CPU 26 can reduce the effort of moving data on the memory 29.

또한, 도 2의 예를 들면 디바이스(28)가 도 8과 같은 데이터 열을 출력하고 그 중의 B, C의 종류만의 데이터 열을 디바이스(23)에 기록하는 경우에는 DMA 컨트롤러(27)에는 데이터 열의 선두에서 36바이트를 1 블록으로서 3 블록 전송하도록 설정하고, DMA 컨트롤러(27)에는 24 바이트를 1블록으로서 3블록 전송하도록 설정하여도 된다.In the example of FIG. 2, when the device 28 outputs a data string as shown in FIG. 8 and writes a data string of only B and C types in the device 23, the data is stored in the DMA controller 27. At the beginning of the column, 36 bytes may be set to be transmitted as three blocks by one block, and the DMA controller 27 may be set to transmit three blocks by 24 blocks as one block.

이와 같이 전송을 중개하는 버스 중계기(13)에 상기한 기능을 부가하는 것만으로 간단한 데이터 구성의 변환을 데이터열의 전송 시에 할 수 있고, 시스템의 성능을 향상시킬 수 있다.By simply adding the above-described functions to the bus relay 13 for relaying transmission in this way, a simple data configuration can be converted at the time of data string transfer, and the performance of the system can be improved.

여기서, 상기한 바와 같은 여분의 데이터를 떼어버리던가, 데이터 열의 사이에 다른 데이터를 삽입하는 경우의 구체 예에 대해서 도면을 참조하면서 설명한다.Here, a specific example in the case where the redundant data as described above is removed or another data is inserted between the data columns will be described with reference to the drawings.

도 9는 컴퓨터 그래픽스 등의 화상 처리에 있어서의 텍스처 매핑을 위한 텍스처 화상 영역을 나타내고 있고 이 넓은 텍스처 영역내의 일부, 예를 들면 도면 중의 사선부로 나타내는 영역(T1, T2, T3, T4)을 전송하는 것을 상정한다. 이 텍스처 화상은 메모리 상에서 예를 들면 도 10과 같이 전개되고, 이 메모리 상에서의 일부 영역(T1, T2, T3, T4)의 데이터를 전송할 때, 여분의 데이터를 떼어버리는 것이 필요하다.Fig. 9 shows a texture image region for texture mapping in image processing such as computer graphics, and the region T 1 , T 2 , T 3 , T 4 represented by a part of the wide texture region, for example, an oblique line in the figure. Assume to send). This texture image is developed in the memory as shown in FIG. 10, for example, and when transferring data of some areas T 1 , T 2 , T 3 , and T 4 on this memory, it is necessary to separate the extra data. .

또한, 데이터 부가의 예로서는 도 11에 나타내는 바와 같이 여러 개의 데이터 열, 예를 들면 폴리곤(polygon) 데이터에 헤더를 부가하는 경우를 들 수 있다. 즉, 폴리곤 데이터는 정점수, 명암(shading), 텍스처의 유무 등에 의해서 데이터 열의 크기가 다르고, 또한 텍스처 데이터와의 구별이나 전송 도착점의 구별 등을 위해 헤더(GPUIFtag)를 붙이는 일이 있다. GPU(Graphic Process Unit:그래픽 프로세스 유닛)의 인터페이스(Graphic Process Unit Interface:GPUIF)에 의해 전송되는 데이터는 선두의 헤더(GPUIFtag)와 후속의 데이터로 구성되는 프리미티브라고 불리는 데이터의 한 덩어리를 기본 단위로 하고, 또한 일괄 처리되는 복수의 프리미티브를 통틀어서 GPU 패킷이라고 한다.As an example of data addition, as shown in Fig. 11, a header is added to several data columns, for example, polygon data. In other words, polygon data may have different data string sizes depending on vertex count, shading, texture, or the like, and a header (GPUIFtag) may be added to distinguish the texture data from the transmission destination. Data transmitted by the Graphical Process Unit Interface (GUIF) interface is based on a chunk of data called a primitive consisting of a header (GPUIFtag) and subsequent data. In addition, a plurality of primitives processed in a batch are referred to as GPU packets.

도 12는 상기 헤더(GPUIFtag)의 구성 예를 나타내고 있고, MSB로부터 순서대로 레지스터 기술자(記述子)(REGS), 레지스터 기술자수(NREG), 데이터 형식(FLG) 등으로 이루어져 있다. 이와 같이 폴리곤 데이터에 헤더(GPUIFtag)를 부가하는 경우에 데이터 열의 사이에 다른 데이터를 삽입하는 것을 필요로 한다.Fig. 12 shows an example of the configuration of the header GPUIFtag, and is composed of a register descriptor (REGS), a register descriptor number (NREG), a data format (FLG), and the like sequentially from the MSB. In this case, when adding a header (GPUIFtag) to the polygon data, it is necessary to insert other data between the data columns.

이상과 같은 간단한 데이터 구성의 변환을 필요로 하는 경우에, 상기한 본 발명의 실시의 형태를 이용하는 것으로서, 메모리 상에 DMA 전송된 데이터 열 또는 메모리 상의 DMA 전송되고자 하고 있는 데이터 열을 CPU가 재배열하는 것과 같은 효율이 나쁜 작업을 줄일 수 있고, 시스템의 성능이 향상된다. 또한 다른 데이터 포맷의 디바이스 사이의 DMA 전송을 할 수 있다. 또한, 특별한 사양의 전송 시점 어드레스나 전송량의 테이블을 준비하던가, 테이블을 참조하던가 하는 작업을 생략할 수 있다.In the case where the above-described simple data configuration is required to be converted, the CPU can rearrange the data strings DMA transferred to the memory or the data strings to be DMA transferred to the memory by using the above-described embodiment of the present invention. It can reduce inefficient work such as, and the performance of the system is improved. It also allows DMA transfers between devices of different data formats. In addition, it is possible to prepare a table of the transfer time address and the transfer amount of a special specification or to refer to the table.

이상의 설명에서 명확한 바와 같이, 본 발명의 실시의 형태의 도 6 내지 도 11과 함께 설명한 예에 의하면 제 1 버스 및 제 2 버스의 사이에 버퍼 메모리를 갖는 버스 중계 수단을 설치하고, 제 1 버스와 제 2 버스의 사이에서의 데이터 전송을 상기 버스 중계 수단내의 버퍼 메모리를 통해서 하고 상기 버스 중계 수단은 데이터 전송 시에 더미 데이터를 부가하는 것에 의해 전송 데이터 블록의 사이즈를 크게 하는 것 또는 데이터 전송 시에 일부의 데이터를 생략하는 것에 의해 전송 데이터 블록의 사이즈를 작게 하는 것에 의해 데이터 전송 시에 간단한 데이터 구성의 변경을 할 수 있고, 시스템의 성능을 향상시킬 수 있다.As is clear from the above description, according to the example described with reference to Figs. 6 to 11 of the embodiment of the present invention, bus relay means having a buffer memory is provided between the first bus and the second bus, Data transfer between the second bus is made through the buffer memory in the bus relaying means, and the bus relaying means increases the size of the transmission data block by adding dummy data at the time of data transmission or at the time of data transmission. By omitting some data, the size of the transmission data block can be reduced, so that a simple data configuration can be changed at the time of data transmission, and the performance of the system can be improved.

또한, 상기 제 1 버스에 제 1 다이렉트 메모리 액세스 제어 수단을 접속하고, 상기 제 1 버스와 상기 버스 중계 수단내의 버퍼 메모리와의 사이에서 데이터 전송 제어하고, 상기 제 2 버스에 제 2 다이렉트 메모리 액세스 제어 수단을 접속하고, 상기 제 2 버스와 상기 버스 중계 수단내의 버퍼 메모리와의 사이에서 데이터 전송 제어하도록 하고, 상기 버스 중계 수단으로서는 데이터 전송시에 상기 버퍼 메모리내의 데이터가 없어도 출력 요구가 와 있을 때에는 더미 데이터를 출력하는 기능과, 데이터 전송 시에 출력측의 데이터 전송이 종료한 시점에 상기 버퍼 메모리내의 데이터가 잔존하고 있을 때에 상기 잔존 데이터를 파기하는 기능을 갖도록 하는 것에 의해 데이터 전송 또는 데이터 전송되고자 하고 있는 메모리 상의 데이터를 CPU 등이 재배열 처리하는 것과 같은 효율 나쁜 작업을 줄일 수 있고, 또한 데이터 전송을 위한 전송 시점 어드레스나 전송량 등의 특별한 전송 사양의 테이블을 준비한다던가 참조하는 노력을 줄일 수 있다. 또한 다른 데이터 포맷의 디바이스 사이의 데이터 전송을 할 수 있다.Further, a first direct memory access control means is connected to the first bus, data transfer control is performed between the first bus and a buffer memory in the bus relay means, and a second direct memory access control is provided to the second bus. Means for connecting and controlling data transfer between the second bus and the buffer memory in the bus relay means, and the bus relay means a dummy when there is an output request even when there is no data in the buffer memory during data transfer. A data transfer or data transfer is to be performed by having a function of outputting data and a function of discarding the remaining data when data in the buffer memory remains at the end of data transfer on the output side during data transfer. CPU, etc. rearrange data in memory May reduce the efficiency of bad operation, for example, it can also reduce the effort to see careful if prepared a table of special transfer specification, such as the sending address and the transmission rate for data transmission. It is also possible to transfer data between devices of different data formats.

다음으로, 도 13은 상기와 같은 본 발명의 실시의 형태가 적용되는 시스템의 한 예를 나타내고, 이 시스템에 있어서는 고속의 화상 처리를 하기 위한 메인 버스(111)와, CD-ROM 드라이브 등의 저속의 주변 디바이스가 접속되는 서브 버스(112)를 FIFO 등의 버퍼 메모리를 갖는 버스 중계기(113)를 통해서 접속하고 있다.Next, Fig. 13 shows an example of a system to which the embodiments of the present invention as described above are applied. In this system, a low speed such as a main bus 111 for performing high speed image processing and a CD-ROM drive or the like is shown. The sub-bus 112 to which peripheral devices of the to-be-connected are connected via a bus repeater 113 having a buffer memory such as a FIFO.

즉, 도 13에 있어서는 고속의 메인 버스(111)에는 메인 CPU(121)와 DMA 컨트롤러(122)와 고속 화상 처리를 위한 그래픽 엔진(123)과, 메인 메모리(124)가 접속되고, 비교적 저속의 서브 버스(122)에는 서브 CPU(126)와 DMA 컨트롤러(127)와 CD-ROM 등의 데이터 기록 매체(128)와, 서브 메모리(129)가 접속되어 있다. 이들 메인 버스(111)와 서브 버스(112)는 상기와 같은 FIFO 등의 버퍼 메모리를 갖는 버스 중계기(113)를 통해서 접속되고, 이 버스 중계기(113)는 DMA 컨트롤러(122, 127)에 복수의 DMA 채널에 대응하는 복수 종류의 DMA 요구, 예를 들면 3 종류의 DMA 요구를 출력할 수 있다. 이 버스 중계기(113)의 구체적인 구성 및 동작은 상기 도 2 내지 도 5와 함께 설명한 실시의 형태의 버스 중계기(13)와 동일하게 하면 되므로 설명을 생략한다.That is, in Fig. 13, the main CPU 121, the DMA controller 122, the graphics engine 123 for the high speed image processing, and the main memory 124 are connected to the high speed main bus 111, and the relatively low speed is achieved. The sub bus 122 is connected to a sub CPU 126, a DMA controller 127, a data recording medium 128 such as a CD-ROM, and a sub memory 129. These main buses 111 and sub-buses 112 are connected via a bus repeater 113 having a buffer memory such as FIFO as described above, and the bus repeater 113 is connected to a plurality of DMA controllers 122 and 127. A plurality of types of DMA requests corresponding to DMA channels, for example, three types of DMA requests can be output. Since the specific structure and operation of this bus repeater 113 may be the same as the bus repeater 13 of the embodiment demonstrated with FIG. 2 thru | or FIG. 5, description is abbreviate | omitted.

이와 같이 고속 버스와 저속 버스의 사이에서 DMA 전송을 하는 경우에, 고속 버스 상에서 불필요한 대기 시간을 발생시키지 않고 데이터 전송을 할 수 있고, CPU의 처리를 간소화할 수 있다. 또한 다른 버스 사이의 DMA 전송 기능의 디버그를 용이하게 할 수 있다.In this way, when DMA transfer is performed between the high speed bus and the low speed bus, data transfer can be performed without incurring unnecessary waiting time on the high speed bus, and the CPU processing can be simplified. It can also facilitate the debugging of DMA transfers between different buses.

또한 본 발명은 상기 실시의 형태만에 한정되지 않고 예를 들면 상기 실시의 형태에서는 제 1 버스와 제 2 버스의 사이에 쌍방향의 DMA 전송을 하는 예에 대해서 설명하였으나 제 1 버스에서 제 2 버스에의 DMA 전송만을, 또는 제 2 버스에서 제 1 버스에의 DMA 전송만을 하는 경우에도 본 발명을 적용할 수 있다. 또한 DMA 채널수, 각각의 버스에 접속되는 회로 등은 실시의 형태에 한정되지 않는 것은 물론이다.In addition, the present invention is not limited to the above embodiment only. For example, in the above embodiment, an example in which bidirectional DMA transfers are performed between the first bus and the second bus has been described. The present invention can also be applied to the case where only the DMA transfers or the DMA transfers from the second bus to the first bus are performed. It goes without saying that the number of DMA channels, the circuits connected to the respective buses, and the like are not limited to the embodiments.

Claims (9)

서로 다른 제 1 버스와 제 2 버스를 버퍼 메모리를 갖는 버스 중계 수단을 통해서 접속하고,Connect different first buses and second buses through bus relay means having a buffer memory, 상기 제 1 버스에 접속된 제 1 다이렉트 메모리 액세스 제어 수단에 의해 상기 제 1 버스와 상기 버스 중계 수단내의 버퍼 메모리의 사이에서 데이터 전송 제어하고,Data transfer control between the first bus and a buffer memory in the bus relay means by a first direct memory access control means connected to the first bus, 상기 제 2 버스에 접속된 제 2 다이렉트 메모리 액세스 제어 수단에 의해 상기 제 2 버스와 상기 버스 중계 수단내의 버퍼 메모리의 사이에서 데이터 전송 제어하고,Data transfer control between the second bus and a buffer memory in the bus relay means by second direct memory access control means connected to the second bus, 상기 버스 중계 수단으로부터의 상기 제 1 또는 상기 제 2 다이렉트 메모리 액세스 제어 수단에의 다이렉트 메모리 액세스 요구를 데이터 처리 수단에 의해 마스크하고, 상기 데이터 처리 수단에 의해 상기 버스 중계 수단내의 상기 버퍼 메모리를 직접 액세스하는 것을 특징으로 하는, 데이터 전송 방법.Mask a direct memory access request from the bus relay means to the first or second direct memory access control means by a data processing means, and directly access the buffer memory in the bus relay means by the data processing means. A data transmission method, characterized in that. 제 1 항에 있어서, The method of claim 1, 상기 데이터 처리 수단은, 상기 제 1 버스에 제 1 데이터 처리 수단이, 상기 제 2 버스에 제 2 데이터 처리 수단이 각각 설치되고,The data processing means may include first data processing means on the first bus, and second data processing means on the second bus, respectively. 상기 제 1 버스상의 다이렉트 메모리 액세스 요구를 상기 제 1 데이터 처리 수단이 마스크하고,The first data processing means masks a direct memory access request on the first bus, 상기 제 2 버스상의 다이렉트 메모리 액세스 요구를 상기 제 2 데이터 처리 수단이 마스크하고,The second data processing means masks a direct memory access request on the second bus, 상기 제 1, 제 2 데이터 처리 수단은 각각의 버스상의 제 1, 제 2 다이렉트 메모리 액세스 제어 수단과 같은 전송 조건으로 상기 버스 중계기내의 상기 버퍼 메모리를 직접 액세스하는 것을 특징으로 하는, 데이터 전송 방법.And the first and second data processing means directly access the buffer memory in the bus repeater under the same transfer conditions as the first and second direct memory access control means on each bus. 제 1 항에 있어서, The method of claim 1, 상기 데이터 처리 수단은, 상기 제 1 버스에 제 1 데이터 처리 수단이 설치되고,The data processing means is provided with first data processing means on the first bus, 상기 제 2 버스 상의 다이렉트 메모리 액세스 요구를 상기 제 1 데이터 처리 수단이 마스크하고,The first data processing means masks a direct memory access request on the second bus, 상기 제 1 데이터 처리 수단은 제 2 버스측에서 상기 버스 중계기내의 상기 버퍼 메모리를 직접 액세스하는 것을 특징으로 하는, 데이터 전송 방법.And the first data processing means directly accesses the buffer memory in the bus repeater on the second bus side. 제 1 버스 및 제 2 버스와,With the first bus and the second bus, 이들 제 1 버스 및 제 2 버스에 각각 접속된 버퍼 메모리를 갖는 버스 중계 수단과,Bus relay means having buffer memories connected to these first buses and second buses, respectively; 상기 제 1 버스에 접속된 제 1 다이렉트 메모리 액세스 제어 수단과,First direct memory access control means connected to said first bus, 상기 제 1 버스에 접속된 제 1 데이터 처리 수단을 갖고,Having first data processing means connected to said first bus, 상기 버스 중계 수단은 상기 제 1 다이렉트 메모리 액세스 제어 수단에 대해서 다이렉트 메모리 액세스 요구를 출력하는 기능과, 이 다이렉트 메모리 액세스 요구를 상기 제 1 데이터 처리 수단에 의해 마스크하는 기능을 갖고,The bus relay means has a function of outputting a direct memory access request to the first direct memory access control means, and a function of masking the direct memory access request by the first data processing means, 상기 제 1 데이터 처리 수단에 의해 상기 버스 중계 수단의 다이렉트 메모리 액세스 요구를 마스크하고, 상기 버스 중계 수단내의 상기 버퍼 메모리를 직접 액세스하는 것을 특징으로 하는, 데이터 전송 장치.And the first data processing means masks a direct memory access request of the bus relaying means, and directly accesses the buffer memory in the bus relaying means. 제 4 항에 있어서, The method of claim 4, wherein 상기 제 2 버스에는 제 2 다이렉트 메모리 액세스 제어 수단과 제 2 데이터 처리 수단이 접속되고,A second direct memory access control means and a second data processing means are connected to the second bus; 상기 제 1, 제 2 다이렉트 메모리 액세스 제어 수단은 상기 버스 중계 수단내의 버퍼 메모리에 대해서 데이터의 판독/기록을 행하는 것으로 상기 제 1, 제 2 버스 사이의 데이터 전송을 행하고,The first and second direct memory access control means performs data transfer between the first and second buses by reading and writing data to the buffer memory in the bus relay means, 상기 버스 중계 수단은 상기 제 2 다이렉트 메모리 액세스 제어 수단에 대해 다이렉트 메모리 액세스 요구를 출력하는 기능과, 이 다이렉트 메모리 액세스 요구를 상기 제 2 데이터 처리 수단에 의해 마스크하는 기능을 갖고,The bus relay means has a function of outputting a direct memory access request to the second direct memory access control means, and a function of masking the direct memory access request by the second data processing means, 상기 제 2 데이터 처리 수단에 의해 상기 버스 중계 수단의 다이렉트 메모리 액세스 요구를 마스크하고, 상기 버스 중계 수단내의 상기 버퍼 메모리를 직접 액세스하는 것을 특징으로 하는, 데이터 전송 장치.And the second data processing means masks a direct memory access request of the bus relaying means, and directly accesses the buffer memory in the bus relaying means. 제 5 항에 있어서, The method of claim 5, wherein 상기 제 1, 제 2 데이터 처리 수단의 한쪽에 의해서, 상기 버스 중계기에서의 다른 쪽의 버스상의 다이렉트 메모리 액세스 요구를 마스크하고, 상기 다른 쪽의 버스 상에서 상기 버스 중계기내의 상기 버퍼 메모리를 액세스하는 것을 특징으로 하는, 데이터 전송 장치.One of the first and second data processing means masks a direct memory access request on the other bus in the bus repeater, and accesses the buffer memory in the bus repeater on the other bus. A data transmission device. 서로 다른 제 1 버스와 제 2 버스를 버퍼 메모리를 갖는 버스 중계 수단을 통해서 접속하고,Connect different first buses and second buses through bus relay means having a buffer memory, 상기 제 1 버스와 상기 제 2 버스의 사이에서의 데이터 전송을 상기 버스 중계 수단내의 버퍼 메모리를 통해서 행하고,Data transfer between the first bus and the second bus is performed through a buffer memory in the bus relaying means, 상기 버스 중계 수단은 데이터 전송 시에 일부의 데이터를 생략하는 것에 의해 전송 데이터 블록의 사이즈를 작게 하고,The bus relay means reduces the size of the transmission data block by omitting some data during data transmission. 상기 제 1 버스에 접속된 제 1 다이렉트 메모리 액세스 제어 수단에 의해 상기 제 1 버스와 상기 버스 중계 수단내의 버퍼 메모리 사이에서 데이터 전송 제어하고,Data transfer control between the first bus and a buffer memory in the bus relay means by first direct memory access control means connected to the first bus, 상기 제 2 버스에 접속된 제 2 다이렉트 메모리 액세스 제어 수단에 의해 상기 제 2 버스와 상기 버스 중계 수단내의 버퍼 메모리 사이에서 데이터 전송 제어하고,Data transfer control between the second bus and a buffer memory in the bus relay means by second direct memory access control means connected to the second bus, 상기 버스 중계 수단은 데이터 전송 시에 출력측의 데이터 전송이 종료한 시점에 상기 버퍼 메모리내의 데이터가 잔존하고 있을 때에 상기 잔존 데이터를 파기 하는 것을 특징으로 하는, 데이터 전송 방법.And the bus relay means discards the remaining data when data in the buffer memory remains at the time when data transmission on the output side ends at the time of data transmission. 제 1 버스 및 제 2 버스와,With the first bus and the second bus, 이들 제 1 버스 및 제 2 버스에 각각 접속된 버퍼 메모리를 갖는 버스 중계 수단과,Bus relay means having buffer memories connected to these first buses and second buses, respectively; 상기 제 1 버스에 접속된 제 1 다이렉트 메모리 액세스 제어 수단과,First direct memory access control means connected to said first bus, 상기 제 2 버스에 접속된 제 2 다이렉트 메모리 액세스 제어 수단을 갖고,Having second direct memory access control means connected to said second bus, 상기 버스 중계 수단은 데이터 전송 시에 상기 버퍼 메모리내의 데이터가 없어져도 출력 요구가 있을 때에 더미 데이터를 출력하고,The bus relay means outputs dummy data when there is an output request even if data in the buffer memory is lost at the time of data transfer, 상기 버스 중계 수단은 데이터 전송 시에 출력측의 데이터 전송이 종료한 시점에 상기 버퍼 메모리내의 데이터가 잔존하고 있을 때에 상기 잔존 데이터를 파기 하는 것을 특징으로 하는, 데이터 전송 장치.And the bus relay means discards the remaining data when data in the buffer memory remains at the time when the data transfer on the output side ends at the time of data transfer. 제 1 버스 및 제 2 버스와,With the first bus and the second bus, 이들 제 1 버스 및 제 2 버스에 각각 접속된 버퍼 메모리를 갖는 버스 중계 수단과,Bus relay means having buffer memories connected to these first buses and second buses, respectively; 상기 제 1 버스에 접속된 제 1 다이렉트 메모리 액세스 제어 수단과,First direct memory access control means connected to said first bus, 상기 제 2 버스에 접속된 제 2 다이렉트 메모리 액세스 제어 수단을 갖고,Having second direct memory access control means connected to said second bus, 상기 버스 중계 수단은 데이터 전송 시에 출력측의 데이터 전송이 종료한 시점에 상기 버퍼 메모리내의 데이터가 잔존하고 있을 때에 상기 잔존 데이터를 파기하는 것을 특징으로 하는, 데이터 전송 장치.And the bus relay means discards the remaining data when data in the buffer memory remains at the time when data transmission on the output side ends at the time of data transmission.
KR1019980710502A 1997-04-22 1998-04-22 Data transmission method and device KR100567147B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019980710502A KR100567147B1 (en) 1997-04-22 1998-04-22 Data transmission method and device

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP97-104979 1997-04-22
KR1019980710502A KR100567147B1 (en) 1997-04-22 1998-04-22 Data transmission method and device

Publications (2)

Publication Number Publication Date
KR20000022093A KR20000022093A (en) 2000-04-25
KR100567147B1 true KR100567147B1 (en) 2006-10-24

Family

ID=41744627

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019980710502A KR100567147B1 (en) 1997-04-22 1998-04-22 Data transmission method and device

Country Status (1)

Country Link
KR (1) KR100567147B1 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05128049A (en) * 1991-11-08 1993-05-25 Mitsubishi Electric Corp Input/output controller
JPH05173933A (en) * 1991-12-24 1993-07-13 Oki Electric Ind Co Ltd Direct memory access transfer system

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05128049A (en) * 1991-11-08 1993-05-25 Mitsubishi Electric Corp Input/output controller
JPH05173933A (en) * 1991-12-24 1993-07-13 Oki Electric Ind Co Ltd Direct memory access transfer system

Also Published As

Publication number Publication date
KR20000022093A (en) 2000-04-25

Similar Documents

Publication Publication Date Title
US6282588B1 (en) Data transfer method and device
JP4560646B2 (en) Apparatus and method for direct memory access in a hub-based memory system
ES2349488T3 (en) DIRECT MEMORY ACCESS CONTROLLER (DMAC) TO MANAGE TRANSFERS OF UNKNOWN LENGTHS.
JP2004171209A (en) Shared memory data transfer device
JPS6375955A (en) Program mode access control system
WO2008096000A1 (en) Microcontroller with memory trace module
KR100567147B1 (en) Data transmission method and device
JP4649257B2 (en) Multi CPU system
JP2005190496A (en) Data transfer method and device
MXPA99000018A (en) Data transfer method and device
JPH10307789A (en) Method and device for transferring data
JPH02207363A (en) Data transfer system, device controller, and memory controller
JP3304107B2 (en) Data bus control method
JP3183959B2 (en) How to raise data
JPH0160862B2 (en)
JP2001084182A (en) Bus connecting device, computer and recording medium
JPH07334453A (en) Memory access system
JPS58213336A (en) Communication controller
JPH02257350A (en) Bi-directional direct data transfer system
JPH08115293A (en) Information processor
JPS5953929A (en) Data transfer device
JPS6255167B2 (en)
JPH036762A (en) Direct access method for image memory
JPH0371255A (en) Data transfer control system
JPH0516452A (en) Printer

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: 20130304

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20140228

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20150302

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20160304

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20170302

Year of fee payment: 12

LAPS Lapse due to unpaid annual fee