KR0162626B1 - 직접기억장치 접근용 제어기 - Google Patents
직접기억장치 접근용 제어기 Download PDFInfo
- Publication number
- KR0162626B1 KR0162626B1 KR1019900702430A KR900702430A KR0162626B1 KR 0162626 B1 KR0162626 B1 KR 0162626B1 KR 1019900702430 A KR1019900702430 A KR 1019900702430A KR 900702430 A KR900702430 A KR 900702430A KR 0162626 B1 KR0162626 B1 KR 0162626B1
- Authority
- KR
- South Korea
- Prior art keywords
- byte
- data
- latch
- bus
- transfer
- Prior art date
Links
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/4009—Coupling between buses with data restructuring
- G06F13/4018—Coupling between buses with data restructuring with data-width conversion
-
- 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
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
제1a도 및 제1b도는 8-비트 데이터단어폭과 호환성이 있는 종래 컴퓨터 시스템내 홀수주소로 그리고 홀수주소로부터 16-비트 데이터단어전송을 설명하는 도면.
제2도는 본 발명의 원리에 따라 만들어진 DMA 제어기 데이터조작기 블럭도표.
제3도는 제2도의 DMA 부속시스템내에서 사용된 입력래치의 블럭도표.
제4도는 제2도의 DMA 부속시스템내에서 사용된 바이트 일부의 블럭도표.
제5도는 제2의 DMA 부속시스템내에서 사용된 ALU/베렐 쉬프트.
제6도는 제2도의 DMA 부속시스템에 의해 수행되는 바의 8비트의 기억장치 판독전송을 도시한 도면.
제6b도 및 제6c도는 제2도의 DMA 부속시스템에 의해 수행된 바의 교대의 8비트 기억장치 기록전송을 도시한 도면.
제7a도 및 제7b도는 제2도의 DMA 부속시스템에 의해 수행되는 바의 짝수주소위치로부터 16-비트 전송을 설명한 도면.
제8a도 및 제8b도는 제2도의 DMA 부속시스템을 사용한 8비트 데이터단어폭과 호환성인 컴퓨터 시스템내에서 16-비트 데이터단어전송을 설명하는 도면.
제9a도-제9g도는 제2도의 DMA 부속시스템을 사용한 8-비트 데이터단어폭과 호환성인 컴퓨터 시스템내에서 한 홀수주소로부터 16-비트 데이터단어감소전송을 위한 규약을 설명하는 도면.
* 도면의 주요부분에 대한 부호의 설명
10 : 데이터조작기 15 : 데이터버스
20 : 래치 22 : 바이트 정렬기
24 : 데이터사전처리기 26 : 상태장치
51 : 레지스터 52 : MUX
53 : ALU 제어논리
54 : ALU/바렐 쉬프터(barrel shifter) 모듈
401-408, 409-416 : 멀티플렉서 417-424 : 8-비트 레지스터
본 발명은 한 기억장치위치에서 다른 한 기억장치위치로, 혹은 한 기억장치위치에서(로) 입/출력(I/O) 장치로(에서)데이터를 전송하기 위한 컴퓨터내의 부속시스템에 관한 것이다. 특히, 본 발명은 각 바이트가 8비트로 구성된 2 또는 그이상 데이터의 데이터 단어폭을 갖는 직접 메모리 접근(DMA)에 관한 것이며, 데이터는 전송 중에 조작 및 작용을 받게된다.
종전에는 중앙처리장치(CPU)로 가능한한 빨리 데이터를 전송하도록 컴퓨터 시스템이 만들어졌으며 따라서 CPU가 바람직한 결과를 달성하기 위해 필요한 모든 동작을 수행할 수 있도록 하며 바람직한 결과로는 대규모의 반복적인 과학계산, 온라인 영업거래처리, 그래픽 접속, 회계프로그램 및 무수한 다른 데이터조작 집약동작을 포함한다. DMA는 보다 빠른 데이터전송, 특히 버스에 의해 일정한 방향을 갖게되는 컴퓨터 시스템 아키텍쳐를 제공하기 위한 방법중의 하나가 된다. 그렇다해도, DMA 부속시스템은 데이터 전송작업을 끝내기 위해 버스사이클(주기) 또는 간단히 사이클(주기)로 통상 불려지게 되는 제한된 시간간격이 걸리게 된다. 주기 시간이 반도체 소자기술의 속도가 점점 빨라지게 됨에 따라 주기 시간은 더욱 짧아지게 되며 그 같은 사실로 인해 데이터에 대한 어떠한 동작도 데이터전송이 끝날 때까지는 수행될 수가 없다.
이와 관련하여, 이전의 검퓨터들은 8비트의 데이터단어폭으로 동작하도록 만들어졌다. 보다 복잡한 기능이 컴퓨터화됨에 따라, 8-비트 바이트들이 곧 계산속도, 따라서 데이터작업의 일정시간내에 처리되는 일의 양을 제한하게 되었다. 따라서 8비트 폭 바이트내로 배치된 16, 32, 64비트의 보다 넓은 단어폭이 이용 되기에 이르렀다.
보다 넓은 단어폭은 큰 규모에서 주 프레임시스템과 만나게 되나 미니컴퓨터로도 알려진 중간크기 컴퓨터에 의해 움직여지는 처리제어시스템에서 발견되기도 한다. 오늘날 개인 사용자의 능력수준도 향상되고 있으며 개인용 컴퓨터(P/C) 또는 P/C-근간의 시스템의 상업적, 산업적 거래가 많이 이루어지고 있다. P/C-근간의 시스템에서 복잡한 기능을 수행하는 것이 바람직해지고 있기 때문에, 이같은 시스템은 8비트보다 넓은 단어폭에서 동작하여 그와 같이 복잡한 작업을 효과적으로 수행하도록 만들어지고 있다. 대부분의 P/C는 8비트 단어폭으로 제한되며, P/C의 다음 세대를 제작하는데 사용하기 위해 통상 이용되고 있는 마이크로프로세서는 16 및 32비트의 데이터폭을 갖는다. 따라서 이같은 마이크로프로세서가 접속하게 되는 주변장치와 기억장치 부속시스템이 8, 16 혹은 32비트 데이터폭을 가질 수 있기 때문에, DMA 부속시스템은 소프트웨어생산의 향상과 기술의 성장을 이룩하기 위해 이같은 데이터폭과 호환성이 있어야 한다.
종전기술에서는, 8비트 데이터단어 시스템내의 기억장치가 주소버스로 부터 직접 어드레스된다. 기억장치는 8비트 단어로 조직되며, 주소버스로 부터 해독된 각 주소신호가 기억장치내 각기 다른 독특한 단어(이경우에는 하나의 바이트와 동일함)를 가르킨다. 16-비트 데이터단어를 위해 만들어진 시스템에서, 기억장치는 16-비트 단어로 조직된다. DMA 서브시스템이 16-비트 기억장치 또는 I/O장치로부터 16-비트 I/O 장치 또는 기억장치로 데이터를 전송시키기 위해 요구되는 한, 각 전송은 한 단어로 구성되고 상기의 데이터는 같은 번호가 주어진 주소로 기록되거나 이로부터 판독된다. 종래 기술에서는, 8비트 및 16비트 기억장치-기억장치 및 기억장치-I/O 장치 접근 모두를 제공하는 시스템이 있다.
8비트 단어 I/O 장치와의 호환성이 요구되면, 데이터의 흐름을 기억장치 단어위치로 향하게 하기 위한 몇가지 준비가 필요하다. 따라서, 전형적으로, 16-비트 기억장치단어들은 두개의 8비트바이트 데이터로 더욱 조직되게 된다. 비트 0-7 및 8-15는 저바이트와 고바이트로 각각 지정된다. 따라서 16-비트 데이터단어 시스템에서는, 각 단어가 두 8비트 바이트로 이루어진다.
데이터를 개별바이트위치로 향하게 하기 위한 방법은 바이트 가능이라 불리우는 추가의 주소신호들을 필요로 한다. 16-비트 단어 시스템에서, 제1의 저바이트를 주소하는 제1주소라인, 즉, A0 주소라인이 BE0N 및 BEIN이라 불려지는 두개의 바이트 가능라인으로 대체된다. BE0N 신호라인이 액티브(active)인 때, 데이터단어의 보다 낮은 바이트가 전송되며, BE1N이 액티브인 때 데이터단어의 상측바이트가 전송된다. BE0N과 BE1N 라인 모두가 동시에 액티브인 때 두 바이트, 즉 완전한 단어가 동시에 정송된다.
유사하게, 32-비트 DMA 부속시스템(32-bit word system)을 갖는 32-비트 단어시스템(32-bit word system)에서, 각 단어는 4개의 8비트 바이트로 조직된다. 이같은 시스템에서, 두 주소라인 A0 및 A1은 4개의 바이트 가능라인, BE0N 및 BE1N, BE2N 및 BE3N 각각으로 대체된다. 마찬가지로, 64-비트 DMA 부속시스템을 갖는 64-비트 시스템에서, 각 데이터단어는 단어당 8개의 8비트 바이트로 조직되며, 주소라인 A0, A1 및 A2가 8개의 바이트 가능 BE0n-BE7N으로 대체된다. 이모든 경우에, 바이트 가능라인등은 전송될 단어의 바이트를 가리키도록 된다.
종래기술의 DMA 부속시스템에서는, 세개의 버스사이클이 8-비트 데이터단어 바이트와 호환성인 P/C 시스템내 홀수주소로(으로부터) 16비트 데이터단어전송을 위해 요구된다. 이같은 시스템에서, 기억장치는 16-비트 단어, (즉, 두개의 8-비트 바이트)로 조직되어 단어경계가 짝수주소상에 있도록 한다. 제1a도에서, 16-비트 홀수주소위치기억장치 판독주기의 주기 1 중에 주소는 짝수기억장치위치를 가리키며 상측바이트의 8-비트판독은 바이트 1가능에 응답하여 수행된다. 데이터판독(바이트 A)은 바이트 A를 구성시키는 비트 7-0과 관련된 한 레지스터내에 저장된다. 첫번째 기억장치 판독주기 이후에, 기억장치주소가 다음의 짝수 주소로 2가 증가되며 바이트 포인터가 액티브(active)되어 판독될 데이터의 저급 바이트(바이트 B)를 가리키도록 한다. 저급 데이터바이트가 판독되며 제2의 주기중에 또다른 레지스터내로 방향이 돌려진다. 제3주기중에는 전단어, 비트 15-8 및 7-0, 즉 바이트 B 및 A가 직렬로 어셈블되며 I/O 장치로의 전송을 위해 버스로 향하도록 된다. 따라서, 이같은 기술을 사용하여 각 단어를 전송시키기 위해 세개의 주기를 필요로 한다. 만약 두 바이트 이상을 포함하는 단어들을 전송하기 위해 이같은 기술이 외삽된다면(기지의 데이터에 의해 추정하기 위해), 필요한 주기의 수는 (a+1)N이 될 것이며, 이때 단어당 바이트의 수는 및 N은 전송될 단어의 수이다. 따라서, 4-바이트 단어의 경우 5주기/단어가 요구된다.
제1b도에서, 16-비트 홀수기억장치 기록동작은 16-비트 홀수기억장치 판독동작과 유사하다. 전송때마다 다시 세개의 버스주기가 요구된다. 첫번째 주기에서, 하나의 단어, 즉 두개의 8-비트 바이트 B와 A가 I/O 장치로부터 판독되며 하나의 래치내에 저장된다. 주기 2중에, 래치내의 보다 낮은 바이트 A가 바이트 가능 BE1N에 응답하여 보다 높은 바이트 기억장치위치로 기록된다. 기억장치주소는 증가되며, BE1N는 액티브(active)하지 못하도록 되며 래치내의 보다 높은 바이트가 바이트 가능신호 BE0N에 응답하여 보다 나은 바이트 기억장치위치로 기록된다.
종래기술에서는, 기억장치주소가 모든 8-비트 접근과 16-비트 접근에서 짝수주소로부터 감소되었다. 그러나, 홀수주소로부터의 16-비트 접근에 대해서는 기억장치주소가 증가할 뿐이었다.
앞서 지적된 바와 같이, 대규모 메인 프레임 컴퓨터든 아니면 오늘날의 P/C든간에 대부분의 컴퓨터 시스템에 간단한 산술작업, 배타적-OR및 바렐 쉬프트 이동(barrel shifting)을 포함하는 조작이 수행되기 이전에, CPU 또는 마이크로프로세서내 혹은 가까이에 있는 레지스터로 데이터를 전송시킨다. 그러나 대규모 집적(VLSI) 반도체기술의 장점은 실제적이 아닌 계산시스템 구조를 사전에 실시하기 위한 기회를 제공한다. 1988년 11월 VLSI:The Challenge to Innovate, VLSI 시스템 디자인 제6면을 참고할 수 있다. 따라서, 이제는 이전에 가능하였던 것보다 여러개를 보다 빨리 혹은 보다 많은 것들을 동시에 할 수 있는 시스템을 만듦이 가능하게 되었다. 특히, 데이터를 보다 빨리 전송하고, 그리고 전송중에(즉 on-the-fly) 데이터를 조작할 수 있는 실용적인 DMA 부속시스템을 실시함이 가능하게 되었다.
본 발명의 DMA 부속시스템은 DMA 전송의 판독주기중에 데이터를 수신하는 한 데이터조작기를 포함한다. 데이터조작기는 전송중에 혹은 선택적으로 수신된 순서로 데이터바이트를 전송시키는 동안에 데이터의 바이트순서를 재배치시키기 위한 회로를 포함한다. 또한 데이터조작기는 데이터의 바이트내에 데이터의 비트위치를 재배치시키는 선택 또는 전송중에 데이터를 통한 논리적 혹은 산술적 동작을 수행하는 선택을 제공하는 회로를 포함한다. 마지막으로, 데이터조작기는 변경된 혹은 변경되지 않은 데이터를 DMA 전송기록주기중에 데이터버스로 구동시키기 위한 회로를 포함한다.
본 발명의 데이터조작기는 데이터를 전송하기 위한 여러 선택을 제공하며 동시에 각기 다른 데이터단어크기를 갖는 I/O 장치와의 호환성을 보장케하고 전체 시스템 수행개선의 기회를 제공한다. 데이터조작기의 입력으로 제공된 어떠한 데이터바이트도 전송되고 있는 동안 조작될 수 있으며 이는 전송의 출발점이나 종착점에서 데이터의 단어크기와 무관한다.
데이터에 대한 바렐 쉬프트(barrel-shift)작업을 수행하는 것이 DMA 전송중에 그래픽-타입의 데이터조작이 발생되도록 허용한다. 산술적 및 논리적 작업이 또한 DMA 전송중에 데이터에 대해 수행될 수 있게되어 화일에서 칼럼들을 분리시키는 것과 같은 작업의 속도를 촉진시키도록 한다. 만약 기억장치-기억장치 DMA 전송과 관련해서 사용되면 파일조작은 다시 전송중에 시스템 처리기와 무관하게 발생되게 된다.
본 발명의 DMA 부속시스템은 한 바이트의 모듈러 증가로 만들어지며, 이같은 시스템은 바람직한 단어폭으로 확장 또는 축소 된다.
DMA 전송중에 데이터를 조작할 수 있는 능력을 제공함과 더불어, 본 발명의 DMA 부속시스템은 홀수주소로 혹은 홀수주소로부터 16-비트 데이터단어전송에 요구되는 버스주기의 횟수를 줄인다. 최초의 기억장치 판독주기중에, 첫번째 8비트데이터(즉, 저급 바이트)가 한 래치내에 저장된다. 첫번째 저바이트가 레지스터내로 전송되는 두번째 기억장치 판독주기중에 다음의 16비트(즉, 제1단어의 고바이트와 제2단어의 저바이트)가 동시에 래치내로 적재된다. 기록 주기중에, 제2바이트는 래치로부터 데이터버스의 상측(고급)바이트위치로 방향이 조정된다. 뒤이은 주기중에, 래치내의 상층 바이트는 상기 마지막으로 언급된 레지스터내로 적재되며, 이때 상기 래치는 다음의 16비트데이터로 적재된다. 따라서, 단일레지스터를 DMA 부속시스템으로 추가시키고 데이터의 흐름방향을 적절히 정함으로써 본 발명 DMA 부속시스템내 한 홀수주소로부터의 16-비트 데이터단어의 DMA 전송이 종래의 DMA 부속시스템과 비교할 때 약 30%가 적은 버스주기에 의해 달성하여지게 된다.
본 발명의 한 특징에 따라,
a) 처음 버스 주기중에 첫 번째 래치로의 양방향 버스를 통해 홀수 주소 기억장치 위치로부터 첫 번째 바이트를 먼저 판독하고,
b) 다음에 상기 첫 번째 래치내 첫 번째 바이트를 두 번째 래치로 전송하며, 적어도 두 개의 바이트를 포함하는 한 단어를 다음의 버스주기중에 두 번째 기억장치 위치로부터 상기 첫 번째 래치로 전송하고,
c) 다음으로 뒤따르는 버스 주기중에 상기 두 번째 래치내의 상기 바이트와 상기 첫 번째 래치내의 적어도 한 바이트를 상기 양방향 버스에 한 단어로서 기록하며,
d) 뒤이은 버스 주기중에 상기 (b)단계와 (c)단계를 상기 멀티-바이트전송이 끝날 때까지 반복하는 단계들을 포함하는 N이 전송될 멀티-바이트단어의 수일 때 중간에 오는 판독 및 기록 작업을 사용하여 양방향 버스를 통해 2N+1버스 주기내에서 밀티-바이트 데이터 전송을 수행하며, 전송될 데이터의 첫 번째 바이트가 한 기억장치 홀수주소 위치에 저장되는 직접 기억장치 접근 제어방법(DMA)이 제공된다.
본 발명의 다른 한 특징에 따라,
a) 먼저 한 소스(source)로부터 적어도 두 바이트를 갖는 첫 번째 단어를 판독하고, 최초의 한 버스주기중에 양방향 버스를 통해 상기 첫 번째 단어를 첫 번째 래치로 전송하며,
b) 다음에, 뒤이은 한 버스주기중에 상기 양방향 버스를 통해 상기 첫 번째 래치내의 적어도 한 바이트를 한 홀수 기억장치 위치에 기록하고,
c) 다음에, 상기 첫 번째 래치내의 적어도 한 바이트를 한 두 번째 래치로 전송하고, 상기 양방향 버스를 통해 상기 소스로부터의 두 번째 단어를 판독하며, 그리고 다음의 뒤이은 버스 주기중에 상기 두 번째 단어를 상기 첫 번째 래치에 기록하고,
d) 다음에, 뒤따라오는 다음의 한 버스주기중에 상기 두 번째 래치내의 상기 바이트와 상기 첫 번째 래치내의 바이트중 적어도 한 바이트를 상기 양방향 버스를 통하여 한 단어로서 한 짝수 기억장치 위치에 기록하고,
e) 상기 두 번째 래치내에 전송된 바이트가 하나만 남아있을때까지 뒤이은 버스 주기중에 (c)와 (d)단계를 반복하며, 그리고
f) 상기 두 번째 래치내 상기 마지막 바이트를 상기 양방향 버스를 통해 한 짝수 기억장치 위치로 전송하는 단계들을 포함하는 N이 전송될 멀티-바이트 단어의 수일 때 중간에 오는 판독 및 기록 작업을 사용하여 양방향 버스를 통해 2N+1 버스 주기내에서 멀티-바이트 데이터 전송을 수행하며, 상기 데이터의 첫 번째 바이트가 한 홀수 주소를 갖는 기억장치 위치에 기록되는 직접 기억장치 접근 제어방법이 제공된다.
본 발명의 또다른 한 특징에 따라, 데이터 기억장치와 입력/출력 장치 그리고 양방향 버스를 통해서 2N+1버스주기에 홀수 단어 주소를 갖는 위치로 그리고 이들 위치로부터 데이터를 전송하는 직접 기억장치 접근 시스템을 갖는 컴퓨터 시스템에 있어서, 짝수와 홀수 기억장치 위치를 갖는 기억장치 시스템, 상기 기억장치 시스템에 결합된 양방향 버스, 멀티플 기억장치 위치를 갖는 첫 번째 래치, 두 번째 래치, 상기 양방향 버스와 상기 첫 번째 래치에 연결되어 상기 기억장치 시스템내 첫 번째 홀수 기억장치 위치로부터 상기 첫 번째 래치내 적어도 한 기억장치 위치로 데이터의 적어도 첫 번째 바이트를 전송하기 위한 전송회로, 그리고 상기 첫 번째 래치, 상기 두 번째 래치, 그리고 상기 양방향 버스에 연결되며, 상기 첫 번째 래치로부터의 데이터를 두 번째 래치로 전송하도록 구성되고, 상기 첫 번째 래치로부터의 적어도 한 바이트와 상기 두 번째 래치로부터의 적어도 한 바이트를 선택적으로 결합시키며 상기 결합된 데이터를 상기 양방향 버스로 전송하여 한 홀수 위치에서 시작하는 상기 기억장치시스템에 저장된 데이터가 N이 전송되는 데이터 단어의 수일 때 2N+1 버스주기에서 상기 버스로 전송되도록 하는 정렬회로를 포함하는 직접 기억장치 접근용 제어기가 제공된다.
하기에서는 첨부도면을 참조하여 본 발명을 상세히 설명한다.
본 발명에 따라 만들어진 DMA 제어기는 래치(20), 바이트 정렬기(22) 및 데이터사전처리기(24)를 포함하는 제2도에 도시된 바와 같은 데이터조작기(10)를 포함하며, 상기 래치, 바이트 정렬기 및 데이터사전처리기 모두는 상태장치(26)에 의해 제어된다. 제2도를 계속 참고하면, 래치(20)의 입력이 양방향 데이터버스(15)에 결합되어 전송동작중에 데이터를 수신하도록 한다. 래치(20)의 출력은 바이트 정렬기(22)의 입력으로 결합된다. 유사한 방식으로, 바이트 정렬기(22)의 출력이 데이터사전 처리기(24)의 입력으로 결합되며 이들로부터 수신된 데이터를 처리하도록 하고 그 데이터를 양방향 데이터버스(15)로 되보내도록 한다.
래치(20)의 크기는 컴퓨터 시스템의 최대 데이터폭(단어당 비트로)에 의해 결정된다. 64-비트 컴퓨터 시스템에 대해 제3도에서 도시된 바와 같이 래치(20)는 VLSI 기술 인코포레이티드에 의해 생산된 LACFNB 타입과 같은 표준의 동시처리 래치를 포함하며, 하나의 래치가 처리된 단어 마다 각 비트의 데이터에 대해 사용된다.
제4도에서, 바이트정렬기(22)는 멀티플렉서(409-416) 각각과 8-비트레지스터(417-424) 각각에 결합된 멀티플렉서(401-408)를 포함한다. 각 멀티플렉서(MUX)(401-408)는 8개의 8-비트 바이트를 한개의 8-비트 바이트로 변환시키며, 유사하게 각 MUX(409-416)은 두개의 8-비트 바이트를 도시된 바와 같이 한개의 8-비트 바이트로 변환시킨다. MUX(401-408) 및 (409-416)은 VLSI 테그날러지 인코포레이티드에 의해 생산된 MX21D1 타입과 같은 구성부품으로부터 통상 만들어진다. 레지스터(417-424)는 역시 VLSI 테그날러지 인코포레이티드에 의해 생산된 DFCTNB 타입 플립플롭과 같은 구성부품으로부터 만들어진다.
설명을 간단하게 하기 위해, 16비트 컴퓨터 시스템, 즉 두 개의 8-비트 바이트가 전송작업을 수행하기 위한 바이트 정렬기(22) 논리의 저부 두섹션만을 사용한다.
제4도에 부연하여 제6a도를 보면, 8-비트 기억장치 판독전송의 주기 1에서, 바이트 A가 짝수단어주소값, 즉 BE0N은 활성 BE1N은 비활성인(601)로 지정된 8-비트기억장치위치로부터 판독되며, 래치(20)의 (301)로 지정된 바이트위치로 기록된다. 데이터가 판독된 뒤에는, 기억장치 주소계수기(도시되지 않음)가 1만큼 증가되어 그 계수기가 다음의 짝수단어 기억장치주소를 가리키도록 되며 그러나 다음의 기억장치 판독작업을 수행하기 위해서는 BE0N이 비활성적이고 BE1N은 활성적이게 된다. 주기 2중에, 바이트 A는 상태장치(26)로부터 MUX(401)에서 제어신호 A0, A1 및 A2에 응답하여, MUX(402)에서 제어신호 B0, B1 및 B2에 응답하여, 그리고 MUX(409)(410) 각각에서의 제어신호 SEL A0와 SEL B0에 응답하여 16-비트 데이터버스의 (602)(603)로 지정된 바이트위치 모두로 향하게 된다. 따라서, 입력 A1을 통해 바이트정렬기(22)내로 들어오는 데이터비트(7-0)는 두 출력 AO(비트 7-0) 및 B0(비트 15-8) 모두에서 제시하기 위해 각각 MUX(401, 402, 409 및 410)를 통해 보내진다. 8-비트 기억장치 전송의 경우에는 레지스터(417)(418) 각각에 데이터를 저장할 필요가 없었기 때문에, 데이터는 데이터버스(15)로 직접 보내진다.
DMA 부속시스템(10)은 상태머신(26)에 의해 제어되어 주소가 주소버스로 향하여지도록 하며 또한 적절한 목적위치로 데이터의 방향을 정하기 위해 바이트 포인터를 또한 발생시킨다. 따라서, 예를 들어, 8-비트 전송의 제2주기중에, 바이트 제로가능신호, 즉 BE0N이 역시 주소의 일부로서 발생된다. BE0N은 I/O 장치로 바이트 제로로 지정된 데이터, 즉 데이터버스의 저급 8비트만을 기록해야 한다는 것을 알려주는데, 이는 그와 같은 데이터가 동시에 데이터버스의 저급 및 고급바이트 모두로 향하여지기 때문이다.
주기 3중에, 또다른 기억장치 판독작업이 수행된다. 데이터는(604)로 지정된 BE0N이 비액티브이고 BE1N이 액티브인 짝수단어주소를 갖는 고바이트 기억장치위치로부터 판독되며 래치(20)의 (302)로 지정된 저바이트위치내로 기록된다. 4번째 주기중에 이같은 고바이트 데이터가 16-비트 데이터버스의 바이트위치(605)(606) 모두를 향하게 되며 주소와 바이트 포인터는 데이터를 적절한 I/O 장치로 향하게 한다. 데이터는 전송작업이 끝날 때까지 뒤이은 주기 동안에 같은 방식으로 계속해서 전송된다.
제4도에 부연해서 제6b도를 보면, 8-비트 기억장치기록 전송의 주기 1에서, 1바이트가 (610)로 지정되며 짝수주소값을 갖는 8-비트 I/O 위치로부터 판독되며 래치(20)의 (301)로 지정된 바이트 위치로 기록된다. 주기 2중에, 바이트 A는 상태장치(26)로부터 MUX(401)에서 제어신호 A0, A1 및 A2에 응답하여 MUX(402)에서 제어신호 B0, B1 및 B2에 응답하여, MUX(409)에서 제어신호 SEL A0에 응답하여, 그리고 MUX(410)에서 SEL B0에 응답하여 16-비트 데이버스의 (611) 및 (612)로 지정된 바이트위치 모두로 향하게 된다. 따라서, 입력 AI를 통해 바이트정렬기(22)내로 들어오는 데이터비트 7-0는 출력 A0(비트 7-0) 및 B0(비트 15-8) 모두에서 제시를 위해 MUX(401, 402, 409 및 410)을 통해 방향이 정하여지게 된다. 8-비트 기억장치전송에서의 경우처럼, 레지스터(417)(418) 각각에 데이터를 저장할 필요는 없으며, 데이터는 데이터버스(15)로 직접 보내진다.
DMA 부속시스템(10)은 상태장치(26)에 의해 제어되어 주소가 주소버스로 구동되고 또한 데이터를 적절한 목적위치로 향하게 하기위해 바이트 포인터를 발생시킨다. 따라서 8비트 전송의 제2주기중에 바이트 제로가능신호, 즉 BE0N이 역시 주소의 일부로 발생된다. BE0N은 기억장치로 지정된 바이트 제로상에 있는 데이터, 즉 데이터버스의 저급 8비트만을 기록해야 함을 나타내며 이는 데이터가 데이터버스의 저급 및 고급바이트 모두에 동시에 관련 되기 때문이다.
주기 3중에, 또다른 I/O 판독작업이 수행된다. 데이터는 BE0N이 액티브이고 BE1N이 비액티브인 짝수단어주소를 갖는(613)로 지정된 저급바이트 I/O 위치로부터 판독되며, 래치(20)의 (301)로 지정된 저급바이트 위치로 기록된다. 4번째 주기중에 이같은 저급바이트데이터는 16비트 데이터버스의 두 바이트위치(614)(615)로 보내지며, 상기 주소와 바이트가 BE0N과 BE1N이 (614)로 지정된 기억장치위치로 데이터를 보낼 수 있도록 한다. 데이터는 도시된 바와 같이 전송작업이 끝날 때까지 뒤이은 주기중에 같은 방식으로 계속해서 전송되게 된다.
제4도에 부연하여 제6c도에서 도시된 바와 같이, 8-비트 기억장치기록전송의 주기 1에서, 하나의 바이트가 BE0N이 비액티브이며 BE1N은 액티브인 짝수단어주소값을 갖는 (620)로 지정된 8-비트 I/O 위치로부터 판독되며, 래치(20)의 (302)로 지정된 바이트위치내로 기록된다. 주기 2중에, 바이트 A가 상태장치(26)로부터 MUX(401)에서 제어신호 A0, A1 및 A2, MUX(402)에서 제어신호 B0, B1 및 B2, MUX(409)에서 제어신호 XEL 0 그리고 MUX(410)에서 SEL B0에 응답하여 16-비트데이터버스의(621)(622)로 지정된 바이트위치 모두로 향하게 된다. 따라서 입력 B1을 통해 바이트 정렬기(22)내로 오는 데이터비트 7-0가 출력 A0(비트 7-0) 및 B0(비트 15-8) 모두에서 제시하기 위해 MUX(401)(402)(409) 및 (410) 각각을 통해 보내진다. 다시, 8비트 기억장치 전송의 경우에는 레지스터(417)(418) 각각에서 데이터를 저장할 필요가 없기 때문에 데이터는 데이터버스(15)로 직접 보내지게 된다.
DMA 부속시스템(10)은 상태장치(26)에 의해 제어되어 주소가 주소버스로 향하여지도록 되며 역시 데이터를 적절한 목적위치로 향하게 하기 위해 바이트 포인터를 발생시키게 된다. 따라서, 8비트 전송의 두번째 주기중에, 바이트 1가능신호, 즉 BE0N이 역시 주소의 일부로 발생된다. BE0N이 기억장치로 바이트(622)로 지정된 데이터, 즉 데이터버스의 저급 8바이트 만을 기록해야 함을 노타내며, 이는 그같은 데이터가 데이터버스의 저급 및 고급바이트 모두로 동시에 보내지기 때문이다.
주기 3중에, 또다른 I/O 판독잡업이 수행된다. 데이터는 짝수단어주소를 가지며, 이때 BE0N는 비액티브이고 BE1N는 액티브인(623)로 지정된 바이트 I/O 위치로부터 판독되며, 래치(20)의 (302)로 지정된 바이트 위치내로 기록된다. 4번째 주기중에 이같이 하이(high) 바이트 데이터(헥스 값 B)가 16비트 데이터버스의 바이트 위치(624)(625) 모두를 향하게 되며, BE0N이 비액티브이고 BE1N이 액티브인 주소와 바이트 포인터가 데이터를 (624)로 지정된 기억장치위치로 향하게 한다. 데이터는 도시된 바와 같이 전송작업이 끝날때까지 뒤이은 주기동안에 같은 방식으로 계속해서 전송된다.
바이트 가능 BE0N 및 BE1N 모두가 액티브인 짝수주소로부터 제7a도에 도시된 바와 같이 16-비트 기억장치 판독작업은 곧바로 진행된다. 이같은 작업의 주기 1중에, 하나의 단어(두개의 8-비트 바이트)가 (701) 및 (702)로 지정된 짝수기억장치위치로부터 판독되며, 래치(20)의 두 저급 바이트위치(301)(302)내로 기록된다. 기억장치주소 계수기(도시되지 않음)는 다음의 기억장치 판독작업에 대비하여 2가 증가된다. 상태머신(26)은 MUX(401)(402)를 제어하여 바이트가 바이트 정렬기(22)를 통해 곧장 통과되며 DMA 전송작업의 제2주기중에 적절한 I/O 장치에서 바이트 위치(703)(704)로의 전송을 위해 16-비트 데이터버스(15)로 향하게 된다. 데이터전송은 전송작업이 끝날 때가지 도시된 바와같이 뒤이은 주기중에 같은 방식으로 계속된다. 물론, 데이터는 만약 필요하다면 본 명세서 다른 곳에서 설명된 바와 같이 전송중에 데이터사전처리기에 의해 수행된 작업을 받게될 수 있다.
제7b도에서, 한 짝수주소로의 16-비트 기억장치 기록작업은 상응하는 16-비트 기억장치 판독작업과 유사하다. 이같은 전송의 주기 1중에, 한 단어(두 8-비트 바이트)가 I/O 장치로부터 판독되며 래치(20)의 (301) 및 (302)로 지정된 두 저급 바이트 위치내로 기록된다. 주기 2중에, 데이터는 바이트 정렬기(22)를 통해 직접 통과되며, 다음에 (712) 및 (713)로 지정된 적절한 기억장치 위치로의 전송을 위해 데이터버스(15)로 보내진다. 그뒤에, 기억장치 주소계수기(도시되지 않음)가 다음의 전송적업을 수행하기 위해 다음 주소로 증가된다.
제8a도에서, 16비트 홀수기억장치 판독작업의 제1바이트가 상응하는 종래 기술작업에 대해 설명된 바와 같이 같은 방법으로 판독된다. 따라서, 제1의 주기가 끝나는 때, 제1의 바이트가(801)로 지정된 바이트 위치에 상응하는, 래치(20)내 (302)로 지정된 바이트 위치내에 저장된다. 기억장치 주소포인터가 다음의 짝수단어주소로 증가된다. 그러나, 두 번째 주기중에는, 래치(20)의 (302)로 지정된 위치내에 저장된 바이트(A)가 MUX(401)를 통해 레지스터(417)내로 전송된다. 이제는 기억장치주소가 짝수경계에 있기 때문에, 16-비트 기억장치 판독작업이 수행되며, 이에 의해 바이트 B와 C모두가 래치(20)내의, 바이트위치(802)(803) 각각에 상응하는 (301) 및 (302)로 지정된 위치로 기록된다. 주기 3중에, 바이트 B는 MUX(402)(410)를 경유하여 (805)로 지정된 바이트위치로 보내진다. 동시에 레지스터(417)내에 저장된 바이트 A는 MUX(409)를 통해 바이트위치(804)로 보내진다. 주소레지스터는 다음의 기억장치 판독작업을 위해 다음의 짝수기억장치주소를 가리키도록 증가된다. 주기 4가 시작하는 때에, 데이터바이트 C가 MUX(401)를 통해 레지스터(417)내로 전송된다. 다음의 기억장치 판독주기작업 역시 16비트 너비이며 단어 2의 바이트 D와 단어 3의 바이트 E를 포함한다. 두개의 데이터바이트는 교차-전송되며 앞서에서와 같이 전송의 기록주기중에 저장된다.
본 발명에서는, 제1의 기억장치 판독주기만이 8비트(1바이트)너비이다. 그와 같은 최초 주기이후에, 판독작업은 항상 16비트 너비이며, 바이트들은 교차전송되고 I/O 장치가 이들을 올바른 순서로 기록하도록 저장된다. 이와 같이하여, 단 하나의 추가 주기만이 전송이 시작되는 곳에서 요구되며, 그뒤에는 모든 16-비트 단어가 전송작업을 끝내기 위해 단 두 개의 주기를 사용해 전송된다.
제8b도에 도시된 16비트 홀수주소 기억장치 기록작업에서, 버스트(bust)데이터 (일련의 데이터)를 마지막으로 전송하기 위해서는 3개의 주기가 요구되나, 모든 다른 전송작업에서는 두 개의 주기만이 요구된다. 주기 1에서, 한 단어(두개의 8비트 A 및 B)가 I/O 장치로부터 판독되며 래치(20)내 (301)(302)로 지정된 위치에서 (810)(811)로 지정된 바이트 위치로부터 저장된다. 주기 2중에, (301)로 지정된 위치의 래치(20)내 바이트 A가 MUX(402)(410)을 경유하여 (813)로 지정된 위치에서 B0(비트 15-8)와 상응하는 홀수바이트 위치로 향하게 된다. 주기 3 중에, 기억장치 주소계수기는 그 계수기가 짝수인 혹은 완전한 단어경계를 가리키도록 증가된다. 또한 이같은 주기중에, 래치바이트위치(302)내의 바이트 B가 레지스터(417)내에 저장된다. 기억장치주소가 짝수경계에 있기때문에 뒤이은 전송은 개별적인 바이트가 정렬되고 방향이 조종되어서 이들이 이들의 각 기억장치위치에서 올바른 순서로 기록되도록된 완전한 16-비트 단어전송이 될 것이다. 또한, 중기 3중에, 단어 2의 바이트 C와 바이트 D로 이루어진 다음 단어는 I/O 장치로부터 판독되며 (301)(302)로 각각 지정된 위치에서 래치내에 저장된다. 주기 4중에, (301)로 지정된 위치에 있는 래치(20)내 바이트 C는 B0(비트 15-8)에 상응하는 바이트 위치(817)를 향하게 된다. 동시에, 레지스터(417)의 내용이 기억장치위치 A0(비트 7-0)에 상응하는 바이트위치(816)로 향하게 된다. 이같은 순서는 마지막의 완전한 단어가 기록될때까지 계속된다. 마지막의 완전한 단어를 위한 기억장치 기록작업중에, 기억장치주소계수기가 다시 증가되어 다음의 짝수주소를 가르키도록 하며, 가능신호 BE0N은 액티브이고 가능신호 BE1N은 비액티브인 상태로 마지막의 한 주기가 실행된다. 따라서, 마지막 주기중에 레지스터(417)내에 담긴 마지막 바이트 데이터만이 데이터버스내로 향하게 되며 데이터전송이 완성된다.
본 발명에 따라 8비트 단어와 호환성인 P/C 시스템에서, 기억장치위치로 혹은 기억장치위치로부터의 멀티-바이트 단어의 모든 전송은 판독작업을 위한 주기와 기록작업을 위한 한 주기를 포함하는 완성을 위한 두개의 버스주기를 필요로 한다. 만약 상기의 전송이 홀수기억장치 주소위치로 혹은 홀수기억장치 주소위치로부터라면 전송된 데이터의 단어의 수나 이들 단어를 구성하는 바이트의 수와 관계없이 전송시마다 단 하나의 추가 주기가 요구된다. 따라서, 이같은 전송은 2N+1 주기를 요구하며, N는 전송될 데이터단어의 수이다. 따라서, 본 발명의 기술을 사용하여 100단어 전송을 위해 201 주기가 요구되며, 종래기술 DMA 부속시스템에서, 3N 주기 또는 300주기가 같은 데이터전송 작업을 위해 요구된다.
또한, 본 발명의 수행장점은 전송될 데이터의 크기 혹은 기억장치의 크기가 증가함에 따라 더욱더 커지게 된다. 짝수기억장치 주소경계가 도달됨에 따라(제2주기가 시작되는 때) 전체, 멀티-바이트 단어를 전송시키므로써 이같은 전송의 속도가 요구되는 주기의 수를 줄이므로써 크게 증가되며, 각기 다른 데이터단어 폭을 갖는 컴퓨터를 위해 만들어진 장치와의 호환성을 유지시키며 진행중인 데이터를 조작할 수 있도록 한다.
본 명세서 다른 곳에서도 기재한 바와 같이, 바이트 주소포인터는 16-비트 단어전송을 위해 홀수주소로부터도 전송될 수 있도록 하기 위해 다음의 바이트로 감소된다. 16-비트단어의 어느 바이트 세그먼트가 정해진 주소로부터 바이트 포인터가 감소된 곳으로 전송될 것인가를 결정하기 위해 종래기술에서는 어떠한 약속도 존재하지 않기 때문에, 본 발명은 여러개의 각기 다른 약속을 고려하고 있다.
제9a도는 제9b-9b도의 상기 택일적 약속과 관련하여 기억장치 시스템의 실제적인 배치계획을 도시한 것이다. 따라서, 예를 들어 8비트 데이터바이트(5)는 실제 위치의 주소(5)에서 저장된다. 제9b도에서, 감소모드에 있는 짝수기억장치 주소(6)로부터의 전송은 일반적으로 허용되는 산업분야의 약속에 따라 설명된다.
제9c-9g도는 감소모드로 홀수기억장치주소(7)로부터 데이터의 전송을 위한 여러개의 약속을 설명하며 이에 따라 본 발명의 제어기가 데이터를 전송시킬 수 있다. 따라서, 예를 들어, 제9d도에서 전송된 첫 번째 16-비트 단어는 고바이트-저바이트 순서로 바이트 6과 7을 포함하며, 반면 제9e도에서 전송된 제1단어가 반대순서로 같은 바이트를 포함한다.
상기의 택인적인 모든 약속에서, 데이터전송이 홀수주소로부터 16-비트 단어전송에 대해 설명된 것과 유사한 방식으로 실시된다. 따라서, 감소모드로 데이터전송을 실현시키기 위해 바람직한 약속만이 바이트 가능신호 BE0N, BEIN … BEnN의 제어순서를 결정하기 위해 요구된다.
데이터조작은 제4도에서 도시된 바와 같이 바이트 정렬기(22)와 관련해서 설명된 바와 같이 상기 전송중에 데이터단어 바이트의 정렬를 포함한다. 그러나, 데이터사전-처리기(24)를 포함하는 DMA 전송작업을 위한 데이터경로를 형성시키므로써, 데이터의 조작이 바렐 쉬프팅(barrel shiftings), 배타적 OR 및 다른 산술적 및 논리적 작업등 대개는 시스템 처리기에 의해 수행되는 작업을 포함하도록 확장될 수 있다. 데이터사전-처리기(24)는 레지스터(51), MUX(52), ALU 제어논리(53) 및 ALU/바렐 쉬프터모듈(54)을 포함한다. 제5도에 도시된 바와 같이 ALU/바렐쉬프트모듈(54)은 VLSI 테크날러지 인코포레이티드에 의해 생산된 BDP3ALU001 및 VDP3BSH001 타입의 모델과 유사하며, VLSI 테크날러지 인코포레이티드에 의해 발간된 VDP 10 데이타 경로 엘리먼트 라이브러리에서 밝혀진 디자인에 따라 디자인될 수 있다.
본 발명의 데이터조작기 디자인은 단일의 8-비트 바이트증가 모듈러이다. 단어폭은 바람직한 데이터단어폭으로 확장되거나 수축된다. 또한, DMA 전송의 판독과 기록작업사이의 데이터조작을 위한 시간의 지속기간이 확장되어 컴퓨터 시스템 운영파라미터와 모순됨이 없이 전송되는 조작숫자 및 타입을 제공하게 된다.
본 발명의 바람직한 실시예에 따라 만들어진 DMA 제어기의 상세한 내역이 다음의 참고설명 A에 밝혀진다.
[참고설명 A]
GC183은 8개의 직접 기억장치접근(DMA)을 제공한다. 시스템 마이크로프로세서는 여러 동작모드를 위한 DMA 레지스터, 전송주소 및 전송계수를 프로그램한다. DMA 제어기는 두 모드중 하나로 프로그램될 수 있다. 첫 번째 프로그래밍 모드는 두개의 인텔 8237 DMA 제어기동작을 어뮬레이트(emulate)한 것이다. 다른 프로그래밍 모드는 확장된 주소를 사용한다. DMA 전송모드에서, I/O 장치는 기억장치로 그리고 기억장치로부터 단일전송, 버스트 또는 판독입증모드로 직접 데이터를 전송시킨다. 단일전송, 버스트 또는 판독입증모드로 직접 데이터를 전송시킨다. 데이터전송은 I/O 장치가 요구하는 때 개시되며 버스임의 논리에 의해 버스의 제어를 허여받으며 DMA이 DMA 요구를 받아들이도록 프로그램되었다.
여러개의 추가기능이 당해장치내에 포함되어 시스템내에 분리회로를 위한 필요를 줄이도록 하였다. 이들은
·DMA 재생논리
·숫자공동처리기 접속장치
·중앙중재 포인트
·프로피 디스크중재
를 포함한다.
[시스템구성]
DMA 제어기가 전용버스에 연결되어 CPU로부터 지시를 수신하며 DMA 전송중에 버스제어신호를 제공하도록 한다. DMA 제어기는 버스중재처리를 제어하기 위해 마이크로채널로 연결된다. CPU가 DMA 제어기를 프로그램하는 때, CPU는 마이크로채널을 통해 8비트 I/O 장치와 같이 이를 처리한다. DMA 제어기는 0000H-00DFH 범위에서 주소를 사용한다. 8237모드에서, 개별레지스터는 I/O 주소맵에서 분리된 위치에 의해 대표된다. 확장된 모드에서, 한 주소가 레지스터가 주소됨을 나타내며 그 기능이 수행됨을 나타내는 한 코드를 저장하도록 사용된다.
[동작모드]
DMA 제어기는 아이들(idle)과 명령의 두 기본단계로 동작한다. 아이들 모드에서, DMA 제어기는 능동적으로 버스를 제어하지 않으며 시스템 보드 처리기에 의해 프로그램된다. 역으로 명령모드에서 DMA 제어기는 DMA 전송을 발생시키기 위해 마이크로 채널버스 제어신호를 구동시킨다.
[레지스터]
다음의 레지스터가 DMA에 담긴다.
[채널레지스터]
8개의 채널 각각은 한 세트의 4레지스터, 기억장치주소, I/O 주소, 전송계수, 그리고 모드를 사용한다.
[기억장치 주소레지스터]
각 채널은 한 세트의 기억장치 주소 레지스터를 사용한다. 베이스주소는 현재의 주소레지스터내로 복사된다. 베이스 레지스터의 내용은 DMA 전송중에 변경되지 않는다. 현재의 주소레지스터는 다음의 전송에서 사용될 기억장치 주소를 가리키며 각 DMA 전송주기 이후에 재생된다(증가되거나 감소된다). CPU는 베이스와 현재의 레지스터를 판독할 수 있다. 자동개시선택이 선택되는 때, 베이스주소가 전송이 끝나자마자 현재의 주소레지스터로 복사된다.
[I/O 주소레지스터]
이같은 레지스터는 DMA 전송을 위해 사용되고 있는 I/O 장치를 위한 주소를 확인한다. 이같은 레지스터의 내용은 DMA 전송중에 변경되지 않는다.
[전송계수 레지스터]
각 채널은 한 세트의 전송계수 레지스터를 사용한다. 베이스 계수 레지스터가 DMA 전송을 위해 수행될 전송계수로 CPU에 의해 프로그램된다. 계수는 현재의 계수 레지스터로 복사된다. 베이스 레지스터의 계수는 DMA 전송중에 변경되지 않는다. 현재의 계수레지스터는 각 전송이 완료하는때 감소된다. 이같은 레지스터가 0000으로부터 FFFF로 감소되는 때, 단말기 계수신호가 작동된다. 단말기계수를 나타내는 이같은 방법때문에, 이같은 레지스터는 요구된 전송의 숫자보다 하나가 적은 크기로 설치시에 적재된다. 자동개시선택이 선택되는 때, 베이스계수는 전송을 완료한 때 현재의 계수레지스터내로 복사된다.
[모드레지스터]
모드레지스터는 DMA 전송중에 수행할 동작타입과 관련된 채널을 구성한다. 프로그램된 기능은 같으나 이같은 레지스터를 프로그램하기 위한 방법은 8237모드와 확장된 모드에서 각기 다르다. 이같은 레지스터는 확장된 모드에서만 판독될 수 있다. 두 동작모드를 위한 비트할당은 다음과 같다.
[공통레지스터]
여러 레지스터가 채널들 가운데 공유되거나 다른 기능을 위해 사용된다. 상태 레지스터, 알버스(Albus) 레지스터, 마스크 레지스터, 바이트 포인터, 일시적 점유레지스터 및 재생레지스터가 있다.
[상태레지스터]
두개의 8비트 레지스터가 제공된다. 하나는 채널 0 내지 3을 위한 것이고, 다른 하나는 채널 4 내지 7을 위한 것이다. 이들 레지스터에서의 정보가 어느 채널이 단말기 계수에 도달하였는가를 말해주며 어느 채널이 상태레지스터가 판독된 마지막 순간이래로 버스를 요구하였는가를 말해준다(레지스터가 판독된 후에는 매번 비트가 지워진다). 이같은 레지스터는 8237모드 혹은 확장된 모드 어느 하나를 사용하여 판독될 수 있다.
확장된 모드에서, 선택된 채널을 위한 정보를 담고 있는 전체 바이트가 복귀된다. 이같은 정보는 바이트 포인터와 관련해서 검색된다. 확장된 기능레지스터(주소 0018H)내 채널숫자는 무시된다. 복귀된 값은 바이트 포인터에 의해 선택된 그룹과 일치한다. 바이트 포인터가 지워진 때, 이는 채널 0-3을 위한 상태레지스터를 선택한다. 확장된 모드로 상태레지스터를 판독함이 바이트 포인터를 토글한다.
[알버스 레지스터]
DMA 제어기는 8개의 가능한 채널을 갖는 0에서 14까지의 중재수준 어느 것과도 작업할 수 있다. 채널 1-3 및 5-7이 상응하는 중재수준으로 할당된다. 두개의 4-비트 레지스터가 제공되며, 한 레지스터가 채널 0을 위한 것이고 다른 한 레지스터가 채널 4을 위한 것이다. 이들 레지스터는 시스템 레지스터가 중재수준을 할당할 수 있도록 하므로써 최종 DMA 동작을 제공하며 어떤 중재수준에서 채널 0 및 4가 장치에 서비스 하도록 한다. 채널 0 또는 채널 4가 사전에 할당된 수준(1-3 또는 5-7)중 한 수준으로 할당되는 때, 마스크 비트가 어느 채널(혹은 어떤 채널도)이 사용될 것인가를 선택하도록 사용된다.
[마스크 레지스터]
만약 장치가 마스크 비트세트를 갖는 한 채널을 위한 중재를 얻으므로써 DMA 서비스를 요구하면, DMA은 어떤 DMA 전송 주기도 수행하지 않을 것이다. 이같은 방법은 버스 마스터가 마이크로채널에 접근할 수 있도록 사용되거나, 혹은 같은 중재수준으로 할당된 여러 DMA 채널가운데에서 선택하기 위해 사용될 수 있다. 만약 중재장치가 전송자체를 수행하지 않으면, 마스크 불가한 인터럽트를 발생될 타입아웃이 발생될 것이다.
8237모드에서, 두개의 4비트 마스크 레지스터가 제공되며, 한개의 레지스터가 채널 7-4를 위한 것이고 다른 하나는 채널 3-0을 위한 것이다. 확장된 모드에서, 개별비트가 세트되며 바람직한 채널을 선택하고 적절한 명령을 선택하므로써 지워진다.
개별마스크비트는 8237모드에서나 확장된 모드에서 세트 되거나 지워질 수 있다. 모든 마스크는 시스템 리세트 혹은 DMA 제어기 마스터 삭제에 의해 세트된다. 8237모드에서 4개의 레지스터 그룹내 모든 마스크 비트는 클리어 마스크 레지스터 명령에 의해 삭제된다.
[중재레지스터]
이같은 레지스터는 중재기능을 위해 여러개의 선택을 프로그램하고 중재사이클의 키이파라미터상태를 모니터하기 위해 사용된다. 이같은 레지스터가 I/O주소맵, 0090H에서 발견 된다. 비트표시는 레지스터를 기록하고 판독하는 것이 각각 상이하다.
[재생레지스터]
하나의 10-비트 재생레지스터가 제공된다. 이같은 레지스터가 재생작업을 위한 기억장치주소를 제공한다. 시스템 마이크로프로세서는 재생레지스터로 접근하지 못한다.
[프로그래밍]
이 섹션은 전송을 수행하기 위해 어떻게 DMA 제어기를 구성 시키는 가를 설명한다.
[8237 모드]
DMA은 모델 2인텔 8237 DMA 제어기로의 논리를 담고 있다. 이 같은 모드가 프로그래밍을 위해 사용되는 때, 레지스터는 개별주소를 선택하고 이들로부터 판독하거나 이들로 기록하므로써 접근된다. DMA 제어 기는 I/O 버스를 위해 전 16-비트 주소해독을 제공한다. 그 기능과 이들의 주소는 다음과 같다.
[바이트 포인터]
기억장치 주소범위는 24비트의 주소데이터를 필요로한다. 전송계수기 및 I/O 주소는 16비트를 사용한다. 8-비트 버스를 통해 데이터를 이동시키기 위해, DMA 제어기가 바이트 포인터를 사용한다. 바이트 포인터를 사용하여 시스템 일부로 접근할 때 마다 바이트 포인터가 다음 상태로 토글되도록 한다. 8237모드에서 000CH 또는 00D8H으로의 기록 또는 확장모드에서 마스터 리세트 명령은 바이트 포인터를 리세트할 것이다. 또한, 확장된 모드 기능 레지스터(0018H)로의 어떠한 기록도 바이트 포인터를 리세트할 것이다. 리세트된 때, 바이트 포인터는 접근된 단어의 최소 유효바이트를 리세트할 것이다. 다음의 접근은 다음의 유효 바이트로 가게된다. 일단 최고 유효 바이트가 접근되면, 바이트 포인터는 다시 최소 유효 바이트로 토글될 것이다. 바이트 포인터 역시 상태레지스터와 함께 사용되어 채널 0-3을 위한 상태비트와 채널 4-7을 위한 상태비트를 선택하도록 한다.
[일시적인 보류 레지스터]
하나의 16-비트 일시 보류 레지스터가 제공된다. 이는 확장된 모드 I/O 명령을 수신하며 수행될 동작을 식별시키는 레지스터이다. 시스템 마이크로프로세서는 기능 레지스터(주소 0018)로의 처음 기록에 의해 기능을 실행하며, 이같은 기능은 수행되며 채널이 사용된다. 다음에 상기 선택된 기능은 포트 주소 001A를 기록 또는 판독하므로써 실행된다.
[확장된 모드]
확장된 도므에서, 두개의 주소가 모든 레지스터와 비트에 접근하도록 사용된다. 확장된 기능레지스터로 알려진 첫 번째 주소(0018)가 바람직한 채널레지스터 또는 비트로의 한 포인터로 작용하며 수행되어질 기능을 확인시킨다. 두번째 주소(001A)가 필요하다면 데이터를 통과시키도록 사용된다. 기능코드에 대해 세부사항은 상기 기능레지스터 설명을 참조할 수 있다.
[자동초기화작업]
DMA 제어기 자동 초기화작업특징은 프로그래머가 DMA 전송이 끝난뒤에 상응하는 베이스 레지스터내 크기로 현재 기억장치 주소레지스터와 전송계수 레지스터를 자동으로 초기화시키므로써 DMA 전송을 위한 설치에 관계한 총경비를 줄일 수 있도록 한다. 이를 이행하기 위해, 모드 레이지스터내에 자동 초기화작업 비트가 세트된다.
[중재]
마이크로채널버스로의 접근을 위한 경쟁중재는 접근을 요구하는 모든 마스터 또는 종속장치가 병렬로 이들의 요구를 발행하도록 하며 이들중 최우선권이 있는 장치를 선택하여 전송하도록 하는 것이다.
1. PREEMPTIN 라인을 낮은 상태로 풀(pull)하므로써 접근을 요구한다.
2. DMA 제어기가 높은 상태로 /GRANT를 풀링하므로써 중재 주기를 시작한다.
3. HOLDR 라인을 높은 상태로 풀하므로써 상기 DMA 제어기가 CPU로부터 전용 버스로의 접근을 요구한다.
4a. CPU는 현재 주기를 끝마치며 버스를 풀어주고 HOLDA 라인을 높은 상태로 풀링하므로써 DMA 제어기에 신호를 보낸다.
4b. 동시에, 서비스를 요구하는 모든 장치는 이들의 최우선순위 코드로 중재버스를 구동시킨다. 이들은 버스를 통한 코드가 최우선순위(가낭 낮은 번호)의 장치코드와 부합할 때까지 조절된다.
5. 중재버스가 안정되기 위한 시간을 허용한 뒤에, DMA 제어기가 /GRANT 신호를 낮은 상태로 풀하여 서비스되어질 장치의 코드에서 고정되어지도록 한다. 이것이 위닝장치(winning device)로 DMA 전송이 시작된다는 신호를 보내게 된다.
[플로피 디스크 중재]
시스템 보드 플로피 디스크 제어기는 DMA 제어기 칩으로 FDREQ를 주장하므로써 DMA 전송을 수행하는 준비가 되어 있음을 알려준다. 다음에 DMA 제어기가 마이크로채널 버스로의 접근을 요구하기 위해 FDPRMT를 세트시킨다. 계속해서 일어나는 중재 주기중에 만약 채널 2를 위한 마스크 비트가 세트되지 않았으면(즉, DMA가 동채널에 대해 가능이면) FDARB0 및 F DARB23을 구동 시키므로써 DMA 제어기가 버스에 대해 완성된다. 중재시도는 채널 2가 중재 주기를 얻는 때까지 계속된다. 다음에 DMA 제어기가 /FDACK를 주장하며, 플로피 제어기를 위해 비-버스팅 전송을 계속 진행 시킨다.
[DRAM 갱신논리]
DRAM 갱신은 DMA 제어기에 의해 제어된다. 이는 DMA 서비스를 위한 주변장치로부터의 한 요구인 것처럼 수행된다. 그 결과는:
1. 재생타이머가 매 15 마이크로세컨드마다 재생을 위한 요구를 발생시킨다.
2. DMA 제어기가 PREEMPT를 발생시키며 전송이 끝날 때까지 대기한다.
3. DMA 제어기가 중재사이클을 발생시킨다. 재생요구는 자동적으로 접근을 획득한다. 그랜트 모드가 입력되지 않는다.
4. 재생주소가 주소버스로 전송되며, REFRESH, MEM, STATUS 및 READ신호가 발생된다.
5. DMA 제어기가 재생주기를 끝내며 시스템의 제어를 CPU로 혹은 프리엠트(preempt)가 액티브이면 채널을 통해 한 장치로 시스템의 제어를 복귀시킨다.
[수치공동처리기 접속장치]
80387 및 80287 수치공동처리기는 시스템내에서 동작하기 위해 몇가지 보조논리를 필요로 한다. DMA 제어기는 이같은 회로가 포함되었다.
[주소해독 및 버스타이밍]
수치상의 공동처리기가 I/O 주소 00FXH에서 발견된다. 칩선택(/NCPCS) 및 통화중(/CPUBUSY)신호가 버스제어기와 핸드 셰이킹(handshaking)하기 위해 발생된다.
[오류처리]
DMA 제어기가 수치공동처리기 오류신호(/NPERROR)를 사용하여 공동처리기 오류인터럽트(/RQ13)를 발생시키도록 신호한다.
[리세트]
DMA 제어기가 시스템 리세트 신호(/RESET) 또는 00F0(소프트웨어 리세트)로의 I/O 기록을 사용하여 수치공동처리기 리세트신호(/NPRESET)를 제공하도록 한다.
/BE0 및 /BE11이 다음과 같이 버스를 통해 데이터의 바이트 위치를 확인시킨다.
/CS0, /CS1, 및 CMEM은 다음과 같이 해석된다.
Claims (6)
- (a) 처음 버스 주기중에 첫 번째 래치로의 양방향 버스를 통해 홀수 주소 기억장치 위치로부터 첫 번째 바이트를 먼저 판독하고, (b) 다음에 상기 첫 번째 래치내 첫 번째 바이트를 두 번째 래치로 전송하며, 적어도 두 개의 바이트를 포함하는 한 단어를 다음의 버스주기중에 두 번째 기억장치 위치로부터 상기 첫 번째 래치로 전송하고, (c) 다음으로 뒤따르는 버스 주기중에 상기 두 번째 래치내의 상기 바이트와 상기 첫 번째 래치내의 적어도 한 바이트를 상기 양방향 버스에 한 단어로서 기록하며, (d) 뒤이은 버스 주기중에 상기 (b)단계와 (c)단계를 상기 멀티-바이트전송이 끝날 때까지 반복하는 단계들을 포함하는 N이 전송될 멀티-바이트단어의 수일 때 중간에 오는 판독 및 기록 작업을 사용하여 양방향 버스를 통해 2N+1버스 주기내에서 멀티-바이트 데이터 전송을 수행하며, 전송될 데이터의 첫 번째 바이트가 한 기억장치 홀수주소 위치에 저장됨을 특징으로 하는 직접 기억장치 접근 제어방법(DMA).
- 제1항에 있어서, 상기 데이터가 상기 버스로 전송되기전에 전송되고 있는 데이터에 대하여 산술적 그리고 논리적 작업을 수행하는 단계를 더욱더 포함함을 특징으로 하는 직접 기억장치 접근 제어방법.
- 데이터 기억장치와 입력/출력 장치 그리고 양방향 버스를 통해서 2N+1버스주기에 홀수 단어 주소를 갖는 위치로 그리고 이들 위치로부터 데이터를 전송하는 직접 기억장치 접근 시스템을 갖는 컴퓨터 시스템에 있어서, 짝수와 홀수 기억장치 위치를 갖는 기억장치 시스템, 상기 기억장치 시스템에 결합된 양방향 버스, 멀티플 기억장치 위치를 갖는 첫 번째 래치, 두 번째 래치, 상기 양방향 버스와 상기 첫 번째 래치에 연결되어 상기 기억장치 시스템내 첫 번째 홀수 기억장치 위치로부터 상기 첫 번째 래치내 적어도 한 기억장치 위치로 데이터의 적어도 첫 번째 바이트를 전송하기 위한 전송회로, 그리고 상기 첫 번째 래치, 상기 두 번째 래치, 그리고 상기 양방향 버스에 연결되며, 상기 첫 번째 래치로부터의 데이터를 두 번째 래치로 전송하도록 구성되고, 상기 첫 번째 래치로부터의 적어도 한 바이트와 상기 두 번째 래치로부터의 적어도 한 바이트를 선택적으로 결합시키며 상기 결합된 데이터를 상기 양방향 버스로 전송하여 한 홀수 위치에서 시작하는 상기 기억장치시스템에 저장된 데이터가 N이 전송되는 데이터 단어의 수일 때 2N+1 버스주기에서 상기 버스로 전송되도록 하는 정렬회로를 포함함을 특징으로 하는 직접 기억장치 접근용 제어기.
- 제3항에 있어서, 전송되는 데이터의 단어 주소를 선택하는 주소 계수기, 그리고 전송되는 데이터의 바이트 주소를 선택하는 바이트 포인터를 더욱더 포함함을 특징으로 하는 직접 기억장치 접근용 제어기.
- 제3항에 있어서, 상기 정렬기(정렬회로)와 상기 양방향 버스사이에 연결된 데이터 사전처리기를 더욱더 포함하며, 상기 데이터 사전처리기가 전송되는 데이터의 산술적 및 논리적 작업을 수행하는 직접 기억장치 접근용 제어기.
- (a) 먼저 한 소스(source)로부터 적어도 두 바이트를 갖는 첫 번째 단어를 판독하고, 최초의 한 버스주기중에 양방향 버스를 통해 상기 첫 번째 단어를 첫 번째 래치로 전송하며, (b) 다음에, 뒤이은 한 버스주기중에 상기 양방향 버스를 통해 상기 첫 번째 래치내의 적어도 한 바이트를 한 홀수 기억장치 위치에 기록하고, (c) 다음에, 상기 첫 번째 래치내의 적어도 한 바이트를 한 두 번째 래치로 전송하고, 상기 양방향 버스를 통해 상기 소스로부터의 두 번째 단어를 판독하며, 그리고 다음의 뒤이은 버스 주기중에 상기 두 번째 단어를 상기 첫 번째 래치에 기록하고, (d) 다음에, 뒤따라오는 다음의 한 버스주기중에 상기 두 번째 래치내의 상기 바이트와 상기 첫 번째 래치내의 바이트중 적어도 한 바이트를 상기 양방향 버스를 통하여 한 단어로서 한 짝수 기억장치 위치에 기록하고, (e) 상기 두 번째 래치내에 전송된 바이트가 하나만 남아있을때까지 뒤이은 버스 주기중에 (c)와 (d)단계를 반복하며, 그리고 (f) 상기 두 번째 래치내 상기 마지막 바이트를 상기 양방향 버스를 통해 한 짝수 기억장치 위치로 전송하는 단계들을 포함하는 N이 전송될 멀티-바이트 단어의 수일 때 중간에 오는 판독 및 기록 작업을 사용하여 양방향 버스를 통해 2N+1 버스 주기내에서 멀티-바이트 데이터 전송을 수행하며, 상기 데이터의 첫 번째 바이트가 한 홀수 주소를 갖는 기억장치 위치에 기록됨을 특징으로 하는 직접 기억장치 접근 제어방법.
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US7/324,211 | 1989-03-15 | ||
US07/324,211 US5187783A (en) | 1989-03-15 | 1989-03-15 | Controller for direct memory access |
US07/324211 | 1989-03-15 | ||
PCT/US1990/001405 WO1990010907A1 (en) | 1989-03-15 | 1990-03-14 | Controller for direct memory access |
Publications (2)
Publication Number | Publication Date |
---|---|
KR920700432A KR920700432A (ko) | 1992-02-19 |
KR0162626B1 true KR0162626B1 (ko) | 1999-01-15 |
Family
ID=23262599
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019900702430A KR0162626B1 (ko) | 1989-03-15 | 1990-03-14 | 직접기억장치 접근용 제어기 |
Country Status (6)
Country | Link |
---|---|
US (1) | US5187783A (ko) |
EP (1) | EP0388300A3 (ko) |
JP (1) | JP3167027B2 (ko) |
KR (1) | KR0162626B1 (ko) |
CA (1) | CA2027572A1 (ko) |
WO (1) | WO1990010907A1 (ko) |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5333294A (en) * | 1990-10-09 | 1994-07-26 | Compaq Computer Corporation | Configurable data width direct memory access device with a read address counter and a write address counter which increments the addresses based on the desired data transfer width |
US5287476A (en) * | 1991-06-07 | 1994-02-15 | International Business Machines Corp. | Personal computer system with storage controller controlling data transfer |
US5386579A (en) * | 1991-09-16 | 1995-01-31 | Integrated Device Technology, Inc. | Minimum pin-count multiplexed address/data bus with byte enable and burst address counter support microprocessor transmitting byte enable signals on multiplexed address/data bus having burst address counter for supporting signal datum and burst transfer |
US5548762A (en) * | 1992-01-30 | 1996-08-20 | Digital Equipment Corporation | Implementation efficient interrupt select mechanism |
US5465340A (en) * | 1992-01-30 | 1995-11-07 | Digital Equipment Corporation | Direct memory access controller handling exceptions during transferring multiple bytes in parallel |
US5293381A (en) * | 1992-03-27 | 1994-03-08 | Advanced Micro Devices | Byte tracking system and method |
EP0606674B1 (en) * | 1992-12-04 | 1999-07-28 | Koninklijke Philips Electronics N.V. | Processor for uniform operations on respective series of successive data in respective parallel data streams |
US5680642A (en) * | 1993-06-25 | 1997-10-21 | At&T Global Information Solutions Company | Method and apparatus for pseudo-aligned transfers of data to memory wherein a re-alignment is performed based on the data byte control header |
US5561819A (en) * | 1993-10-29 | 1996-10-01 | Advanced Micro Devices | Computer system selecting byte lane for a peripheral device during I/O addressing technique of disabling non-participating peripherals by driving an address within a range on the local bus in a DMA controller |
US5816921A (en) * | 1994-09-27 | 1998-10-06 | Sega Enterprises, Ltd. | Data transferring device and video game apparatus using the same |
US5628026A (en) * | 1994-12-05 | 1997-05-06 | Motorola, Inc. | Multi-dimensional data transfer in a data processing system and method therefor |
US5613162A (en) * | 1995-01-04 | 1997-03-18 | Ast Research, Inc. | Method and apparatus for performing efficient direct memory access data transfers |
US5907865A (en) * | 1995-08-28 | 1999-05-25 | Motorola, Inc. | Method and data processing system for dynamically accessing both big-endian and little-endian storage schemes |
JP3562126B2 (ja) * | 1996-04-09 | 2004-09-08 | 株式会社デンソー | Dma制御装置 |
US5987578A (en) * | 1996-07-01 | 1999-11-16 | Sun Microsystems, Inc. | Pipelining to improve the interface of memory devices |
US6360307B1 (en) | 1998-06-18 | 2002-03-19 | Cypress Semiconductor Corporation | Circuit architecture and method of writing data to a memory |
KR20000065450A (ko) * | 1999-04-03 | 2000-11-15 | 구자홍 | 버스 인터페이스 시스템과 이를 이용한 버스 인터페이스 방법 |
US7194088B2 (en) * | 2001-06-08 | 2007-03-20 | Corrent Corporation | Method and system for a full-adder post processor for modulo arithmetic |
DE50114373D1 (de) | 2001-10-31 | 2008-11-13 | Infineon Technologies Ag | Datenübertragungseinrichtung |
JP2003281074A (ja) * | 2002-03-19 | 2003-10-03 | Fujitsu Ltd | ダイレクトメモリアクセス装置 |
US7962698B1 (en) | 2005-10-03 | 2011-06-14 | Cypress Semiconductor Corporation | Deterministic collision detection |
Family Cites Families (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4494186A (en) * | 1976-11-11 | 1985-01-15 | Honeywell Information Systems Inc. | Automatic data steering and data formatting mechanism |
JPS5563422A (en) * | 1978-11-08 | 1980-05-13 | Toshiba Corp | Data transfer system |
US4514808A (en) * | 1978-04-28 | 1985-04-30 | Tokyo Shibaura Denki Kabushiki Kaisha | Data transfer system for a data processing system provided with direct memory access units |
US4447878A (en) * | 1978-05-30 | 1984-05-08 | Intel Corporation | Apparatus and method for providing byte and word compatible information transfers |
JPS6019809B2 (ja) * | 1979-12-26 | 1985-05-18 | 株式会社日立製作所 | デ−タ処理装置 |
JPS573283A (en) * | 1980-06-03 | 1982-01-08 | Hitachi Denshi Ltd | Readout system for data |
JPS5779551A (en) * | 1980-11-06 | 1982-05-18 | Nec Corp | Information transfer device |
US4445172A (en) * | 1980-12-31 | 1984-04-24 | Honeywell Information Systems Inc. | Data steering logic for the output of a cache memory having an odd/even bank structure |
JPS57132229A (en) * | 1981-02-09 | 1982-08-16 | Mitsubishi Electric Corp | Direct memory access controller |
JPS57209554A (en) * | 1981-06-19 | 1982-12-22 | Oki Electric Ind Co Ltd | Data processor |
JPS5892025A (ja) * | 1981-11-26 | 1983-06-01 | Hitachi Ltd | デ−タ処理方式 |
US4439827A (en) * | 1981-12-28 | 1984-03-27 | Raytheon Company | Dual fetch microsequencer |
JPS5977558A (ja) * | 1982-10-27 | 1984-05-04 | Toshiba Corp | デ−タ転送方式 |
JPS59229659A (ja) * | 1983-06-09 | 1984-12-24 | Hitachi Ltd | デ−タ処理方式 |
US4633434A (en) * | 1984-04-02 | 1986-12-30 | Sperry Corporation | High performance storage unit |
JPS60263246A (ja) * | 1984-06-11 | 1985-12-26 | Ricoh Co Ltd | メモリ・システム |
KR900007564B1 (ko) * | 1984-06-26 | 1990-10-15 | 모토로라 인코포레이티드 | 동적 버스를 갖는 데이터 처리기 |
JPS6136859A (ja) * | 1984-07-30 | 1986-02-21 | Nec Corp | インタフエ−ス制御装置 |
KR860007588A (ko) * | 1985-03-25 | 1986-10-15 | 미쓰다 가쓰시게 | 데이터 처리장치 |
JPS61267162A (ja) * | 1985-05-22 | 1986-11-26 | Toshiba Corp | デ−タ転送装置 |
US4788693A (en) * | 1985-09-30 | 1988-11-29 | American Telephone And Telegraph Company, At&T Bell Laboratories | Data communication replicator |
JPS62154049A (ja) * | 1985-12-26 | 1987-07-09 | Casio Comput Co Ltd | デ−タバス変換回路 |
US4722050A (en) * | 1986-03-27 | 1988-01-26 | Hewlett-Packard Company | Method and apparatus for facilitating instruction processing of a digital computer |
US4845664A (en) * | 1986-09-15 | 1989-07-04 | International Business Machines Corp. | On-chip bit reordering structure |
JPS63226756A (ja) * | 1987-03-16 | 1988-09-21 | Fujitsu Ltd | ビツト操作可能なdma転送回路 |
JPS6432367A (en) * | 1987-07-29 | 1989-02-02 | Fujitsu Ltd | Information transfer system with arithmetic function |
EP0303752B1 (en) * | 1987-08-20 | 1993-06-02 | International Business Machines Corporation | Memory access control device in a mixed data format system |
-
1989
- 1989-03-15 US US07/324,211 patent/US5187783A/en not_active Expired - Lifetime
-
1990
- 1990-03-14 JP JP50525090A patent/JP3167027B2/ja not_active Expired - Fee Related
- 1990-03-14 WO PCT/US1990/001405 patent/WO1990010907A1/en active Application Filing
- 1990-03-14 CA CA002027572A patent/CA2027572A1/en not_active Abandoned
- 1990-03-14 KR KR1019900702430A patent/KR0162626B1/ko not_active IP Right Cessation
- 1990-03-14 EP EP19900400691 patent/EP0388300A3/en not_active Withdrawn
Also Published As
Publication number | Publication date |
---|---|
EP0388300A3 (en) | 1991-11-13 |
WO1990010907A1 (en) | 1990-09-20 |
KR920700432A (ko) | 1992-02-19 |
CA2027572A1 (en) | 1990-09-16 |
JPH03505016A (ja) | 1991-10-31 |
US5187783A (en) | 1993-02-16 |
EP0388300A2 (en) | 1990-09-19 |
JP3167027B2 (ja) | 2001-05-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR0162626B1 (ko) | 직접기억장치 접근용 제어기 | |
KR100420706B1 (ko) | 가변폭버스의동시적인액세스를이용하는다중프로세서시스템에서i/o제어를위한방법및시스템 | |
US5708849A (en) | Implementing scatter/gather operations in a direct memory access device on a personal computer | |
US5875351A (en) | System for requesting access to DMA channel having address not in DMA registers by replacing address of DMA register with address of requested DMA channel | |
EP0189638B1 (en) | Bus width adapter | |
US5555425A (en) | Multi-master bus arbitration system in which the address and data lines of the bus may be separately granted to individual masters | |
US4937734A (en) | High speed bus with virtual memory data transfer and rerun cycle capability | |
US5121487A (en) | High speed bus with virtual memory data transfer capability using virtual address/data lines | |
EP1131732B1 (en) | A direct memory access engine for supporting multiple virtual direct memory access channels | |
KR19990029294A (ko) | 가변폭 버스의 동시적인 액세스를 이용하는 다중프로세서시스템에서 버스중재를 위한 방법 및 시스템 | |
US5734924A (en) | System for host accessing local memory by asserting address signal corresponding to host adapter and data signal indicating address of location in local memory | |
KR920008448B1 (ko) | 데이터 프로세서 | |
US5930488A (en) | Semiconductor integrated circuit device with a central processing unit, a data transfer controller and a memory storing data transfer parameters | |
KR19990029293A (ko) | 다중프로세서 시스템에서 가변폭 버스를 동시에 액세스하기 위한 방법 및 시스템 | |
US5561819A (en) | Computer system selecting byte lane for a peripheral device during I/O addressing technique of disabling non-participating peripherals by driving an address within a range on the local bus in a DMA controller | |
JPH04363746A (ja) | Dma機能を有するマイクロコンピュータシステム | |
US7310717B2 (en) | Data transfer control unit with selectable transfer unit size | |
US5414866A (en) | One-chip microcomputer with parallel operating load and unload data buses | |
JP2755039B2 (ja) | レジスタ・アクセス制御方式 | |
JP3431025B2 (ja) | データ転送システム | |
JP2005165508A (ja) | ダイレクトメモリアクセスコントローラ | |
EP1125191A1 (en) | Controlling access to a primary memory | |
EP0479229A2 (en) | Minimum contention processor and system bus system | |
JPH0227696B2 (ja) | Johoshorisochi | |
JP2002259326A (ja) | Dmaコントローラ及びdma転送方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
N231 | Notification of change of applicant | ||
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: 20120802 Year of fee payment: 15 |
|
EXPY | Expiration of term |