KR20160036794A - An interrupt-driven i/o arbiter for a microcomputer system - Google Patents
An interrupt-driven i/o arbiter for a microcomputer system Download PDFInfo
- Publication number
- KR20160036794A KR20160036794A KR1020140128830A KR20140128830A KR20160036794A KR 20160036794 A KR20160036794 A KR 20160036794A KR 1020140128830 A KR1020140128830 A KR 1020140128830A KR 20140128830 A KR20140128830 A KR 20140128830A KR 20160036794 A KR20160036794 A KR 20160036794A
- Authority
- KR
- South Korea
- Prior art keywords
- cpu
- arbiter
- bus
- fifo
- interrupt
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4027—Coupling between buses using bus bridges
- G06F13/4031—Coupling between buses using bus bridges with arbitration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/24—Handling requests for interconnection or transfer for access to input/output bus using interrupt
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/36—Handling requests for interconnection or transfer for access to common bus or bus system
- G06F13/362—Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
- G06F13/364—Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control using independent requests or grants, e.g. using separated request and grant lines
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4265—Bus transfer protocol, e.g. handshake; Synchronisation on a point to point bus
- G06F13/4273—Bus transfer protocol, e.g. handshake; Synchronisation on a point to point bus using a clocked protocol
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F5/00—Methods or arrangements for data conversion without changing the order or content of the data handled
- G06F5/06—Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Bus Control (AREA)
Abstract
Description
본 발명은 마이크로컴퓨터 시스템의 I/O 버스 중재에 관한 것이다.The present invention relates to I / O bus arbitration in microcomputer systems.
종래의 I/O 버스 중재기와 관련 기술개발Conventional I / O bus arbiter and related technology development
종래의 I/O(Input/Output) 버스 중재기는 버스는 물론 중재기도 다수인 SOC(System-On-Chip) 아키텍처의 간단한 것은 물론 복잡한 멀티버스 시스템에 필요하다. 예컨대, Intel IXP435와 같은 신형 통신 프로세서에는 하나의 칩에 3개의 버스 중재기와 4가지 버스와 2개의 브리지가 있는데, SOC가 싱글-CPU 기반 ARM 아키텍쳐인 경우나, 2개의 하드웨어 지원 액셀러레이터나 코프로세서인 경우에도 그렇다. 컴퓨터 시스템의 인텔 펜티엄 시리즈와 다른 마이크로컴퓨터 기반 SOC 시스템도 같은 체계로 동작한다.Conventional input / output (I / O) bus arbiters are necessary for complex multi-bus systems, as well as for buses as well as simplicity of the system-on-chip (SOC) architecture. For example, a new communications processor, such as the Intel IXP435, has three bus arbiters, four buses, and two bridges on a single chip, where the SOC is a single-CPU based ARM architecture, or two hardware-assisted accelerators or coprocessors Even so. The Intel Pentium series of computer systems and other microcomputer-based SOC systems also operate in the same system.
대부분의 중재기는 적어도 2개의 신호, 즉 디바이스로부터의 버스요청 신호를 위한 REQ-GNT(Request-Grant) 쌍과, 중재기로부터의 해당 버스 그랜트 신호를 필요로 한다. CPU(프로세서), DMA(direct memory access), INT(interrupt) 및 BUSREQ-BUSGNT(bus requet-bus grant; 버스 제어신호쌍)에도 마찬가지다. 즉, 간단한 중재기를 구현하는데 특정 시스템에 대한 완전한 이해와 친밀도가 필요하다. 흔히 DMA는 PC 시스템에서 가장 복잡한 디바이스이기도 하다.Most arbiters require at least two signals, a REQ-Request-Grant (REQ-GNT) pair for the bus request signal from the device, and a corresponding bus grant signal from the arbiter. The same is true for CPU (processor), direct memory access (DMA), interrupt (INT) and bus requet-bus grant (BUSREQ-BUSGNT). That is, a complete understanding and familiarity with a particular system is required to implement a simple arbiter. DMA is often the most complex device in PC systems.
종래의 중재기들은 I/O 디바이스 조건에 대해 지식이 빈약하거나 많은 경우 전혀 지식이 없어, 우선순위를 정하는 알고리즘이나 에이징에 대한 타임스탬프와 같은 복잡한 하드웨어 체계는 물론, 기타 디바이스 전송 능력을 예측하여 단순화할 수 있는 다른 체계들에 필요하다. 이런 체계들은 광대역 디바이스에 필요한 패킷과 같은 현재의 프로세싱 모듈의 관점에서 개조가 필요하다.Conventional arbiters have no knowledge of the I / O device condition at all, and have no knowledge of the I / O device conditions, and are able to predict and simplify complex hardware schemes such as prioritizing algorithms or timestamps for aging, It is necessary for other systems that can do this. These schemes need to be modified in terms of current processing modules, such as the packets needed for broadband devices.
I/O 중재기를 구현한 방법의 일례로 인기가 있는 중재기 칩을 종래의 시스템에 사용한 방법에 있다. Intel 8289는 모든 인텔기반 펜티엄 컴퓨터의 원조격인 Intel 8288 버스 컨트롤러와 Intel 8086 CPU에 동작하도록 설계된 실험적인 중지개 칩들 중의 하나이다. 1978년 Intel 8086 CPU가 도입된 뒤 생긴 MCS-86 지원칩 집단의 일부이다. 8289로는 디바이스들이 버스중재를 필요할 때는 물론 중재기가 중재를 필요로할 때도 멀티-중재 칩이 좀더 혼란을 일으킬 수 있다. An example of a method of implementing an I / O arbiter is in a method using a popular arbiter chip in a conventional system. The Intel 8289 is one of the experimental stopping chips designed to work with the Intel 8288 bus controller and the Intel 8086 CPU, which are the founders of all Intel-based Pentium computers. It is part of a group of MCS-86-enabled chips that were introduced after the introduction of the Intel 8086 CPU in 1978. With the 8289, multi-moderation chips can be more confusing when devices require bus arbitration as well as when the arbiter requires intervention.
복잡한 중재체계에 대한 개발은 이미 이루어지고 있다. 2006년 8월 22일 등록허여된 삼성전자의 미국특허 7096293B2에 소개된 중재체계는 메인 CPU 신호인 INT(interrupt) 신호에 크게 의존하고 있다. 그러나, 이 경우에도 중재를 위해서는 기존의 REQ-GNT 신호쌍이 여전히 필요하여, 이 특허는 PCU 버스를 필수로 하고있다.The development of complex intervention systems is already underway. The arbitration system introduced in Samsung Electronics' US patent 7096293B2 registered on August 22, 2006 largely depends on the INT (interrupt) signal, which is the main CPU signal. However, even in this case, the existing REQ-GNT signal pair is still required for arbitration, and this patent requires the PCU bus.
모토롤라의 1993년 2월 9일 등록된 미국특허 5,185,694에 소개된 블록 MOVE는 CPU를 이용해 프로그래머가 데이터의 버스트-전송을 제어하도록 한다. 이 발명에서는 메모리 사이에 버스트-전송을 채택하지만, 이런 아이디어를 I/O에도 적용할 수 있다. The block MOVE introduced in Motorola's US Patent 5,185,694, issued Feb. 9, 1993, allows the programmer to control the burst-transfer of data using the CPU. This invention adopts burst-transfer between memories, but this idea can be applied to I / O.
버스트 전송이나 동기 데이터전송은 1993년 이래의 모든 특허의 시스템에 필요한 것으로, 본 발명자들은 버스트-전송을 1994년에 인텔에서 만든 PCI 버스 사양의 기본 동작으로 보았다. 이때부터 마이크로컴퓨터에 사용된 일반 SDRAM에도 같은 개념을 적용할 수 있고, 2002년의 DDR과 2009년의 DDR2에도 마찬가지다.Burst transfer or synchronous data transfer is required for all patented systems since 1993 and we have seen burst-transfer as the basic operation of the PCI bus specification made by Intel in 1994. The same concept can be applied to general SDRAM used in microcomputer from this time, and it is the same in DDR of 2002 and DDR2 of 2009.
데이터의 버스트-전송을 위해서는 송신포드와 수신포트 양쪽의 속도차를 일치시키기 위해 FIFO가 필요하다. 이런 추세에 맞춰 본 발명의 I/O 중재 기술을 개발하게 되었다.For the burst-transfer of data, a FIFO is needed to match the speed difference between both the transmit and receive ports. In accordance with this trend, the inventive I / O arbitration technique has been developed.
I/O 중재기I / O arbiter
현재의 마이크로컴퓨터 시스템은 버스, 중재기, 인터럽트, DMA, 브리지들을 별도로 취급되어야 하는 별개의 엔티티로 본다. 현재의 모델은 유닉스 논리 디바이스 드라이버 모델을 캐릭터 디바이스와 블록 디바이스로 구분해 취급한다. 디바이스마다 I/O 버스가 달라야 한다. I/O 버스가 하나 이상 있을 때는 이들 버스들을 격리하고 버스에서 버스로 도약하기 위한 브리지가 있어야 한다. 이 경우, 각 버스에 묶인 디바이스들의 중재기는 물론, 각각의 중재기 사이를 중재하기 위한 추가 중재기도 있어야 한다. 또, 이들 독립적인 데이터전송을 관리하기 위해 인터럽트 신호인 DMA 신호들을 연결해야 한다. 이런 복잡한 체계의 일례가 Intel IXP435 통신 프로세서와 인텔 펜티엄 시리즈 프로세서가 있는데, 이들 모두 PC용이다.Current microcomputer systems view buses, arbiters, interrupts, DMAs, and bridges as separate entities that must be handled separately. The current model treats the Unix logical device driver model as a character device and a block device. I / O buses must be different for each device. When there is more than one I / O bus, there must be a bridge to isolate these buses and leap from bus to bus. In this case, there should be an intermediary for the devices bound to each bus, as well as for the arbitration between each arbiter. In order to manage these independent data transfers, DMA signals, which are interrupt signals, must be connected. One example of this complicated scheme is the Intel IXP435 communications processor and the Intel Pentium series processors, both of which are for PCs.
본 발명은 이런 모든 기능적 목적들을 하나로 합치면서도 시스템을 단순화하기 위해 몇가지 특징들을 없애면서도 더 좋은 모델을 제공하는 것을 목적으로 한다.The present invention aims at providing a better model while eliminating some features in order to simplify the system while incorporating all of these functional purposes.
새로운 I/O 중재기는 많은 최신 시스템에서 수년간 사용한 뒤 모든 입증된 데이터전송 기술들을 통합하는데, 예컨대 버스트-전송이나 동기 데이터전송, FIFO, 및 FPGA(Field-Programmable-Gate-Array)에 의해 작동되는 하드웨어 엔진들을 통합하여, 이해하고 채택하기 간단함은 물론 더 좋지는 않더라도 적어도 동등한 성능을 낼 수 있는 I/O 중재기를 안출하였다. 주요 특징은 본 발명을 제외한 다른 중재기들 없이도 버스 액세스를 위한 디바이스를 처리하는데 일관성이 있다는 것이다.The new I / O arbiter incorporates all proven data transfer technologies after many years of use in many modern systems, including hardware that is operated by burst-transfer or synchronous data transfer, FIFO, and Field-Programmable-Gate-Array (FPGA) I / O arbiter, which is able to integrate the engines, understand and adopt at least the same performance, if not better, as well as simpler. The main feature is that it is consistent in handling devices for bus access without the need for arbiters other than the present invention.
클린 CPU 디자인에 의해 가장 잘 지원되는 클린 디자인으로부터, PCI 버스를 포함한 I/O 중재기에 사용된 종래의 인터페이스 신호는 불필요하고, CPU로 제어되는 3개 동기 클록신호 세트와 CPU 인터럽트 신호만을 이용해 시스템에서 완벽히 제거될 수 있다.From the cleanest designs best supported by clean CPU designs, conventional interface signals used for I / O arbiters, including the PCI bus, are unnecessary and require only three CPU-controlled sets of synchronous clock signals and CPU interrupt signals It can be completely removed.
그 이유는 컴퓨터 시스템에서의 모든 처리가 인터럽트에 의해 제어되기 때문이다. 따라서, 시스템 디자이너로 하여금 인터럽트 관점에서 생각하게 하는 인터럽트-구동 프로세서를 생성하는데 있어서 인터럽트 신호들을 약화시키는 다른 제어신호들은 필요없게 할 수 있다. 모든 I/O 동작들을 관찰하고 하여, 내부 동작들을 하나의 균일한 인터럽트 이베트처럼 흐르게 하고 소스들을 인터럽트 컨트롤러에 집어넣는다. The reason is that all processing in the computer system is controlled by an interrupt. Thus, other control signals that weaken the interrupt signals may be dispensed with in creating an interrupt-driven processor that allows the system designer to think in terms of an interrupt. By observing all I / O operations, we let the internal operations flow like a single uniform interrupt event and put the sources into the interrupt controller.
이런 패러다임은 캐릭터, 블록, 부트 ROM 디바이스나 네트웍 디바이스와 같은 이질적 디바이스들을 FIFO와 버퍼를 갖춘 하나의 동질의 디바이스처럼 보는데 있다. 동직의 디바이스들은 I/O 중재 엔진과 CPU에 동일한 인터페이스를 제공하여, 결국 버퍼와 FIFO의 크기만 다르게한다. 이 경우 CPU가 디바이스내의 제어 레지스터에 직접 액세스하지 못하고, 완전한 32-비트 워드 블록만을 리드/라이트할 수 있어, 소프트웨어 레벨에서의 물리적 디바이스 드라이버 코드를 없애게 된다.This paradigm is to view heterogeneous devices such as characters, blocks, boot ROM devices, and network devices as a homogeneous device with FIFOs and buffers. Devices of the same class provide the same interface to the I / O arbitration engine and CPU, resulting in different sizes of buffers and FIFOs. In this case, the CPU can not directly access the control register in the device, but can read / write only the complete 32-bit word block, thereby eliminating the physical device driver code at the software level.
이런 모델은 복잡성 여부와 무관하게 디바이스에 직접 연결이 가능하고, 하나의 I/O 중재기 이외에는 버스 브리지와 전기신호 한계를 갖는 PCI와 같은 모든 버스가 필요 없다.These models can be connected directly to the device, with or without complexity, and do not require any bus, such as PCI, with bus bridges and electrical signal limits, other than a single I / O arbiter.
발명의 요약SUMMARY OF THE INVENTION
도 1은 본 발명의 I/O 중재기의 개략도로서 CPU(100) 내부의 3개 주요 요소와 디바이스 인터페이스 신호(106), 중재기 인터럽트 컨트롤러(105), FIFO(104) 및 포트엔진(103)을 보여준다. 성질이 캐릭터이든 블록 데이터전송이든 상관없이 디바이스는 포트엔진에 연결되고, 포트엔진은 디바이스의 포맷과 디바이스의 신호제어를 위한 엔진이나 FSM(Finite-State-Machine)으로부터 32-비트 워드변환을 담당한다. 1 is a schematic diagram of an I / O arbiter of the present invention, showing three main elements within a
이런 I/O 중재기(101)의 주요 기능은 7개의 FIFO 버스들 중의 하나를 CPU(101) 버스에 연결하되, 버스트 전송시 한번에 하나씩 한다. 디바이스는 전용 INT 신호를 작동하여 관련 FIFO에 의한 주의를 요청하고, 이때 중재기 인터럽트 컨트롤러(105)는 이 요청을 선입선출 기반으로 원형 버퍼(216)에 큐(queu)한다. The main function of this I /
I/O 중재과정은 포트엔진(103)에서 시작하고, 포트엔진은 디바이스(102)로부터의 모든 데이터 포맷을 완벽한 32-비트 워드로 변환한다. 디바이스는 32-비트 데이터 패킷을 전송하고, I/O 중재기는 이 데이터를 관련 FIFO(104)로 버퍼해야 한다. 결국 CPU(100)는 모든 다른 프로세스와 마찬가지로 이 데이터를 메인메모리내의 버퍼에 두어야 한다. FIFO(104)가 충전되면, FIFO 블록(104)의 FIFO 컨트롤러가 고유 인터럽트를 생성한다. I/O 중재기 인터럽트 컨트롤러는 고유 인터럽트가 특정 포트로부터 온 것을 알고 포트 ID를 계류중인 인터럽트 원형 버퍼에 큐한다.The I / O arbitration process begins at
포트 ID가 이 큐를 작동하면, I/O 중재기는 CPU INT(107)를 작동시키고 CPU INTA(Interrupt-Acknowledgement) 신호(108)를 대기하며, I/O 중재기는 포트 ID인 인터럽트 벡터를 이 신호에 둔다. CPU(100)는 이 ID를 리드하고, 이 벡터를 위한 ISR(interrupt service routine)로 점프하며, 이 포트가 FIFO(104)에 데이터 블록을 갖고 있으며 이 모두를 포트 전용의 메인메모리 버퍼에 리드한다는 것을 안다.When the port ID operates this queue, the I / O arbiter activates the
CPU(100)의 데이터 블록 라이트 과정은 반대이다. CPU(100)는 가능한 언제라도 데이터 블록을 라이트하거나, I/O 중재기(101)를 통한 인터럽트에 반응해 라이트한다. CpU가 필요한 32-비트 워드와 포트 어드레스 외에도 제어라인의 동기 클록신호를 이용해 버스트 모드에서만 포트에 리드하거나 라이트함을 알아야 한다.The data block write process of the
I/O 중재기는 기본적으로 I/O 포트 요청 서비스의 인터럽트 시동을 기초로 작업한다. 모든 계류중인 인터럽트들은 원형 버퍼에서 큐되고, CPU로부터 INTA를 받았을 때 관련 벡터와 함께 CPU의 단일 인터럽트 핀으로 전송된다. 각 포트는 I/O 중재기를 큐하기 위한 자체 INT & INTA 핀들을 갖고 CPU로 INT를 보낸다.The I / O arbiter basically operates based on the interrupt start of the I / O port request service. All pending interrupts are queued in the circular buffer and sent to the CPU's single interrupt pin along with the associated vector when the INTA is received from the CPU. Each port has its own INT & INTA pins to queue the I / O arbiter and sends INT to the CPU.
도 1은 본 발명의 I/O 중재기의 개략도;
도 2는 모든 필요한 인터페이스 신호에 의한 I/O 중재기의 내부동작도.1 is a schematic diagram of an I / O arbiter of the present invention;
Figure 2 is an internal view of the I / O arbiter with all necessary interface signals.
도 2를 참조하여 자세히 설명한다. I/O 중재기는 중재 인터페이스(200), 인터럽트 컨트롤러(201), FIFO-0을 포함한 다수의 FIFO 모듈(204), port-0 engine을 포함한 다수의 포트엔진으로 이루어진다. 점선 박스로 표시되고 중재기을 구성하지 않으며 device-0을 포함한 다수의 디바이스(202)가 도시되어 있다. 여기서는 디바이스 데이터 경로들 중의 하나인 device-0(202)을 다른 디바이스들을 대표해 I/O 중재기에 연결한다. Will be described in detail with reference to FIG. The I / O arbiter includes an
CPU(100)와 FIFO들 사이의 모든 동기적 버스트전송을 CPU(100)로 제어하는 것이 키포인트인데, 이때문에 CLK(209) 신호는 단방향성이다. 이런 조건에서는 디바이스에 의한 모든 독립적인 DMA 전송이 불가능하다. 인터럽트 요청에 응답해 일련의 데이터를 리딩 또는 라이팅하든지 FIFO 디바이스의 초기 접속은 원하는 FIFO에 대한 라이트 명령어로 시작된다. 이 명령어는 FIFO 디바이스를 선택하는 CS(Chip-Select) 신호를 형성하는 각각의 어드레스 라인(A12-A0)(206)와 함께 WR(210) 신호를 작동시켜 FIFO에 라이트된다. 명령어를 인터럽트할 때 FIFO 디바이스는 오픈-드레인 연결이고 모든 STP2(207) 신호에 묶인 활성 STP2(207) 신호로 반응한다. 이어서, CPU(100)가 CLK(209), STP1(208), RD(211) 및 WR(210) 신호들을 작동하여 버스트모드 데이터전송을 시작한다. Controlling all synchronous burst transfers between the
메인 메모리나 FIFO에서 소정 길이의 데이터블록을 위한 간단한 완전 전송을 위한 버스트전송 프로토콜A burst transfer protocol for simple full transfer for a data block of a predetermined length in main memory or FIFO
device-0(202)으로부터의 리딩이 CPU(10)에 의해 개시되어, 각각의 어드레스(A12-A0)(206) 라인들과 함께 WR(210) 신호가 CS_10(205)를 형성하여 FIFO-0(204) 디바이스를 형성하도록 하는 명령어를 라이트한다. FIFO-0(204)은 CLK(208) 신호가 정지되었음을 통보하여 라이트 동작이 버스트 데이터전송을 시작하지 않고 명령어 위상임을 인식한다.A read from the device-0 202 is initiated by the
이 명령어가 CPU(100)가 일단의 데이터를 리드하길 원함을 의미한다고 FIFO-0(204)가 해독하면, FIFO-0(204)는 이 명령어를 준비하고 있음을 나타내는 STP2(207) 신호를 즉각 작동시키고, 이때 CPU(100)는 FIFO-0(204)내의 32-비트 데이터 블록과 동기적으로 CLK(209) 신호를 가동하여 버스트-리드 시퀀스를 시작한다. 소정 블록 길이가 전송된 뒤, FIFO-0(204)는 STP2(207) 신호를 작동하여 버스트 전송의 끝 부분이 FIFO 버퍼의 끝에 도달한 것을 CPU에 알려준다.When this command decodes by the FIFO-0 204 to mean that the
FIFO-0(204)에 라이트할 때에도 마찬가지로, 명령어 위상에 뒤이어, FIFO-0(204)가 이 명령어를 라이트 명령어로 해독한 뒤, FIFO-0(204)는 이 명령어를 대기하고 있음을 나타내는 STP2(207) 신호를 즉각 가동하고, 이때 CPU(100)는 메인 메모리내의 32-비트 데이터 워드 블록과 동기적으로 CLK(209) 신호를 작동하여 버스트 라이트 시퀀스를 시작한다. 소정 블록 길이가 전송된 뒤, CPU(100)는 STP1(208) 신호를 작동하여 버스트 전송이 끝났음을 FIFO-0(204)에 알려준다. Similarly, when writing to the FIFO-0 204, the FIFO-0 204 decodes this instruction into a write instruction after the instruction phase, and then the FIFO-0 204 issues STP2 The
FIFO내의 미지 길이의 데이터 블록의 불완전 전송을 위한 버스트전송 프로토콜A burst transfer protocol for incomplete transmission of unknown data blocks in the FIFO
CPU(100)에서 FIFO로의 데이터전송은 소프트웨어의 제어하에 있어서 항상 알려져 있다. 이 소프트웨어는 최적의 데이터전송을 위해 디바이스에 대한 데이터 블록의 갯수와 데이터 길이를 항상 알 수 있다. 불가피한 유일한 변수는 디바이스로부터의 데이터전송, 즉 CPU(100)에 의한 버스트 리드인데, 이는 디바이스로부터 오는 데이터 블록의 갯수와 데이터 길이를 미리 알 수 있는 방법이 없기 때문이다. 예컨대, LAN 디바이스로부터의 패킷들은 FIFO 버퍼가 오버플로할 때까지 계속 유입되는데, 이 경우 인터럽트가 일어난다. Data transfer from the
이때 인터럽트 컨트롤러가 동작을 시작하는데; FIFO를 읽고 비우는데 CPU(100)를 필요로 하는 디바이스가 많을 수 있다.At this time, the interrupt controller starts to operate; There may be many devices that require the
device-0(204)를 데이터경로로 취한 FIFO-0(204)는 완전해 채워졌을 때 고유 인터럽트를 생성한다. I/O 중재기에서, 인터럽트 컨트롤러(201)는 인터럽트가 FIFO-0(204)에서 온 것을 알고 펜딩중인 인터럽트 원형버퍼(216)의 포트 ID를 큐(queue)한다. FIFO-0 (204), which takes device-0 (204) as a data path, generates a unique interrupt when it is completely filled. At the I / O arbiter, the interrupt
ID가 큐되면, I/O 중재기(101)가 CPU INT(212)를 작동시키고 CPU INTA(213)(인터럽트-인식) 신호를 대기하는데, 이때 I/O 중재기(101)는 포트 ID인 인터럽트 벡터를 이 신호에 싣는다. CPU(100)는 이 ID를 리드하고 이 벡터를 위한 ISR(interrupt service routine)로 점프하며, 이 포트가 FIFO-0(204)내의 데이터블록을 갖고있음을 알아챈다. FSM 사이클의 끝에서 서비스할 다음 디바이스가 FIFO-0(204)에서 온다고 결정한 인터럽트 컨트롤러(201)는 INTA(217) 신호를 FIFO-0(204)로 보낸다. FIFO-0(204)는 STP2(207) 신호를 작동하여 전송 준비가 되었음을 인식하여, 버스트-리드 시퀀스가 시작했음을 CPU(100)가 알도록 한다. 이어서, CPU(100)는 이들 전부를 port-0(204)용으로 예약된 메인 메모리 버퍼에 리드한다. FIFO-0(204)가 비워지면, 블록전송이 끝났음을 CPU(100)에게 알려주는 STP2(207) 신호를 FIFO-0(204)가 작동시킨 다음 device-0(202)에서 오는 다음 인터럽트를 대기해야 한다.When the ID is queued, the I /
CPU(100)가 버스트 라이트 전송을 할 때, FIFO-0(204)는 STP2(207) 신호를 작동하여 FIFO 버퍼가 채워진 때를 CPU(100)에 알려주고, 이 경우 CPU100)는 버스트-라이트 사이클을 끝낸다.When the
인터럽트 컨트롤러(201)는 시스템네 모든 펜딩 인터럽트들을 관리하는데 있어 버퍼 헤드(215)와 버퍼 테일(214)을 위한 포인터들을 계산하기 위한 FSM을 위해 CPU(100)로부터 2개의 신호쌍 INT(212)-INTA(212)만을 필요로 하여, 연결된 모든 디바이스들에 대해 자체 INT-INTA(217) 사이클을 재생한다. The interrupt
이상의 설명은 캐릭터나 블록 디바이스, ROM과 같은 집적회로, 하드디스크 드라이브, LAN, 다른 CPU, 및 DMA 메커니즘, 브리지, 추가 버스나 중재기가 없이 상상할 수 있는 다른 모든 것이든 어떤 디바이스도 포트에 부착하기 위한 시스템의 기초를 제공한다.
The above description is intended for any device, such as a character or block device, an integrated circuit such as a ROM, a hard disk drive, a LAN, another CPU, and any other device that can be imagined without DMA mechanisms, bridges, Provides the foundation of the system.
Claims (10)
3. The I / O arbiter block of claim 2, wherein the arbitration scheme and the buffer size that can cause the priority are changed to rely on the knowledge of the CPU software of the device to adopt a scheme suitable for the burst-transfer of the device.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020140128830A KR102333544B1 (en) | 2014-09-26 | 2014-09-26 | An interrupt-driven i/o arbiter for a microcomputer system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020140128830A KR102333544B1 (en) | 2014-09-26 | 2014-09-26 | An interrupt-driven i/o arbiter for a microcomputer system |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20160036794A true KR20160036794A (en) | 2016-04-05 |
KR102333544B1 KR102333544B1 (en) | 2021-12-01 |
Family
ID=55800065
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020140128830A KR102333544B1 (en) | 2014-09-26 | 2014-09-26 | An interrupt-driven i/o arbiter for a microcomputer system |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102333544B1 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20210099534A (en) * | 2014-09-26 | 2021-08-12 | 유니버시티 테크놀로지 말레이시아 | A homogeneous device access method which removes physical device drivers in a computer operating system |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4320292A (en) * | 1979-08-22 | 1982-03-16 | Nippon Telegraph And Telephone Public Corporation | Coordinate input apparatus |
US6065088A (en) * | 1998-08-31 | 2000-05-16 | International Business Machines Corporation | System and method for interrupt command queuing and ordering |
US20030158608A1 (en) * | 2002-02-13 | 2003-08-21 | Canon Kabushiki Kaisha | Data processing apparatus, image processing apparatus, and method therefor |
US20050010706A1 (en) * | 2003-06-26 | 2005-01-13 | Samsung Electronics Co., Ltd. | Dynamic bus arbitration method and bus arbiter |
-
2014
- 2014-09-26 KR KR1020140128830A patent/KR102333544B1/en active IP Right Grant
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4320292A (en) * | 1979-08-22 | 1982-03-16 | Nippon Telegraph And Telephone Public Corporation | Coordinate input apparatus |
US6065088A (en) * | 1998-08-31 | 2000-05-16 | International Business Machines Corporation | System and method for interrupt command queuing and ordering |
US20030158608A1 (en) * | 2002-02-13 | 2003-08-21 | Canon Kabushiki Kaisha | Data processing apparatus, image processing apparatus, and method therefor |
US20050010706A1 (en) * | 2003-06-26 | 2005-01-13 | Samsung Electronics Co., Ltd. | Dynamic bus arbitration method and bus arbiter |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20210099534A (en) * | 2014-09-26 | 2021-08-12 | 유니버시티 테크놀로지 말레이시아 | A homogeneous device access method which removes physical device drivers in a computer operating system |
Also Published As
Publication number | Publication date |
---|---|
KR102333544B1 (en) | 2021-12-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5819096A (en) | PCI to ISA interrupt protocol converter and selection mechanism | |
KR970000842B1 (en) | System direct memory access(dma)support logic for pci based computer system | |
US7263572B2 (en) | Bus bridge and data transfer method | |
US5119480A (en) | Bus master interface circuit with transparent preemption of a data transfer operation | |
WO2018120780A1 (en) | Method and system for pcie interrupt | |
US6892266B2 (en) | Multicore DSP device having coupled subsystem memory buses for global DMA access | |
KR930002787B1 (en) | Universal peripheral controller self-configuring bootloadable ramware | |
US6567881B1 (en) | Method and apparatus for bridging a digital signal processor to a PCI bus | |
US8972624B2 (en) | USB virtualization | |
JP2018519587A (en) | Configurable mailbox data buffer device | |
US5471639A (en) | Apparatus for arbitrating for a high speed direct memory access bus | |
US5305442A (en) | Generalized hierarchical architecture for bus adapters | |
US7006521B2 (en) | External bus arbitration technique for multicore DSP device | |
US20160224486A1 (en) | Interrupt-driven i/o arbiter for a microcomputer system | |
KR20160036794A (en) | An interrupt-driven i/o arbiter for a microcomputer system | |
JP2008502977A (en) | Interrupt method for bus controller | |
EP0426156B1 (en) | Floppy disk controller with DMA verify operations | |
US7340554B2 (en) | USB host controller with DMA capability | |
JP5146796B2 (en) | Host controller | |
JPS62154045A (en) | Bus arbitration system | |
WO2012143947A2 (en) | Multi-host peripheral controller | |
CA2282166C (en) | Method and apparatus for bridging a digital signal processor to a pci bus | |
JP2002073534A (en) | Data transfer device | |
JPH05334234A (en) | High speed dma transferring device | |
JP2001265711A (en) | Device for transferring data and bus system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |