[go: up one dir, main page]

KR940002088B1 - 데이타 항목 전송 방법 및 장치 - Google Patents

데이타 항목 전송 방법 및 장치 Download PDF

Info

Publication number
KR940002088B1
KR940002088B1 KR1019900016658A KR900016658A KR940002088B1 KR 940002088 B1 KR940002088 B1 KR 940002088B1 KR 1019900016658 A KR1019900016658 A KR 1019900016658A KR 900016658 A KR900016658 A KR 900016658A KR 940002088 B1 KR940002088 B1 KR 940002088B1
Authority
KR
South Korea
Prior art keywords
data
register
storage
location
data item
Prior art date
Application number
KR1019900016658A
Other languages
English (en)
Other versions
KR910008587A (ko
Inventor
웰즈 포터 데이빗
조셉 스카시아 랠프
Original Assignee
인터내셔널 비지네스 머신즈 코포레이션
하워드 지. 피거로아
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 인터내셔널 비지네스 머신즈 코포레이션, 하워드 지. 피거로아 filed Critical 인터내셔널 비지네스 머신즈 코포레이션
Publication of KR910008587A publication Critical patent/KR910008587A/ko
Application granted granted Critical
Publication of KR940002088B1 publication Critical patent/KR940002088B1/ko

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/4009Coupling between buses with data restructuring
    • G06F13/4018Coupling between buses with data restructuring with data-width conversion
    • 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

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

데이타 항목 전송 방법 및 장치
제1도는 본 발명에 따른 DMA 제어기의 일반적인 외형도를 도시한 도면.
제2도는 본 발명에 따른 DMA 제어기의 동작의 흐름도.
제3a도 내지 제3h도는 제2도에 도시된 동작의 제1실시예를 도시한 도면.
제4a도 내지 제4c도는 제2도에 도시된 동작의 제2실시예를 도시한 도면.
제5도는 DMA 제어기와 32비트, 16비트 및 8비트 장치 사이의 I/O 버스 접속을 도시한 도면.
제6a도 내지 제6f도는 본 발명에 따른 데이타 복사(duplication) 방법이 필요한 상태의 실시예를 도시한 도면.
제7a도 내지 제7d도는 제2도에 도시된 동작의 제3실시예를 도시한 도면.
제8도는 제1도의 DMA 제어기의 게이팅(gating)회로와 임시 기억 레지스터의 회로도.
제9도는 본 발명에 따른 장치 크기와, 바이트 인에이블 신호(BE)와 롤-다운(roll-down)양을 나타내는 신호(RD) 사이의 관계를 도시한 표.
제10도는 데이타 복사를 실행하는 제1도의 게이팅 회로의 회로도.
* 도면의 주요부분에 대한 부호의 설명
10 : DMA 제어기 20 : 임시 기억 레지스터
30 : 게이팅 회로 40 : 카운터
[발명의 분야]
본 발명은 데이타 처리 시스템용 데이타 전송 방법 및 장치에 관한 것이다. 특히, 본 발명은 소스(source device)와 목적지 장치(destination device) 사이에 데이타 항목(바이트)을 전송하는 직접 메모리 액세스(DMA)제어기용 방법 및 장치에 관한 것이다.
[발명의 배경]
종래의 데이타 처리 시스템은 주 메모리, 중앙 처리 장치(CPU) 및 주변 장치(예를들어, 입/출력 장치 또는 주변 메모리)를 포함한다. 이러한 데이타 처리 시스템에 있어서, 중앙 처리 장치에 기억된 프로그램에 따라 전송 동작을 실행하는 CPU의 제어하에 정보(데이타)가 전송된다.
종래의 데이타 처리 시스템의 시스템 성능(performance)을 개선하기 위해, 직접 메모리 액세스(DMA)제어기를 사용하여 주 메모리와 주변 장치 사이의 데이타 전송을 CPU의 제어를 받지 않고 수행하는, 소위 DMA 데이타 처리 시스템은 이미 공지되어 있다.
DMA 데이타 처리 시스템은 데이타를 데이타 블럭 형태로 소스 장치에서 목적지 장치 영역으로 전송시키기 때문에 고속으로 데이타를 전송할 수 있다. 데이타 블럭이란 다수의 연속 어드레스 또는 기억 장소에 기억된 데이타 항목(예를들어, 바이트)을 말한다. 지금부터 DMA 데이타 처리 시스템의 일반적인 동작을 설명한다.
블럭 데이타 전송이 실행될 때, DMA 처리 시스템의 주변 장치는, 주 메모리로부터 혹은 그 메모리로 블럭 데이타 전송의 실행을 요청하는 "요청"(request)신호를 DMA 제어기에 전송한다. 요청 신호를 수신한 DMA 제어기는 CPU로 "홀드"(hold)요청 신호를 전송한다. CPU는, 각각의 명령 사이클 이후에, 홀드 요청 신호가 DMA 제어기에 의해 전송되었는지 여부를 결정한다. 홀드 요청 신호가 전송되었다고 결정하자마자, CPU는 주 메모리와 주변 장치 사이의 데이타 블럭을 직접 전송할 수 있는 DMA 제어기로, 시스템 버스의 제어를 양도한다. 일단 블럭 데이타 전송이 완료되면, DMA 제어기는 시스템 버스의 제어를 다시 CPU로 양도한다.
미합중국 특허 제4,271,466호, 제4,346,439호, 제4,471,427호, 제4,542,457호 및 제4,545,014호에는 공지된 직접 메모리 액세스 데이타 처리 시스템의 여러 실시예가 설명되어 있다. 이들 인용된 특허는 참고 문헌으로 본 명세서에 명시되어, 직접 메모리 액세스 데이타 처리 시스템을 이해하는데 도움이 된다.
직접 메모리 액세스 제어 시스템에 있어서, DMA 제어기가 소스 장치에서 목적지 장치(예를들면, 하나의 메모리)로 데이타 블럭을 직접 전송하기 전에, 상기 DMA 제어기는 목적지 장치의 어드레스 또는 기억 장소와 데이타 블럭을 포함하는 소스 장치의 어드레스 또는 기억 장소를 정열(align)해야만 한다. 더 정확히 말하면, 데이타 블럭이 목적지 장치로 전송되기전에, 소스 장치의 시작 어드레스(starting address) 즉, 데이타 블럭의 시작 어드레스는 목적지 장치의 특정 시작 어드레스와 정렬되어야 한다. 이러한 기법은 경계 정렬(boundary alignment)이라고 알려져 있다. 홀수 경계 정렬은, 예를들어, 시작 어드레스를 포함하는 한 데이타 워드 장소와 관계 있는 소스 장치의 시작 어드레스 위치가 시작 어드레스를 포함하는 목적지 장치 데이타 워드와 관계있는 목적지 장치의 시작 어드레스의 동일한 위치에 상응하지 않는 상태를 의미한다. 예를들어, 두 메모리를 생각하면, 이들 각각의 메모리는 다수의 더블 데이타-워드(즉, 4연속(8-비트)바이트)로 구성된다. 어드레스(61)(HEX)는 데이터 어드레스(60-63)(HEX)로 구성된 더블 워드의 "제2"바이트에 상응한다. 어드레스(83)(HEX)는 데이타 어드레스(80-83)로 구성된 더블 워드의 "제4" 또는 최종 바이트와 상응한다. 만일, 소스 장치의 시작 어드레스가 61이고, 목적지 장치의 시작 어드레스가 83이면, 데이타 어드레스(61)(더블 워드(60-63)의 제2위치에 상응하는 어드레스)가 목적지 장치의 어드레스(83)(더블 워드(80-83)의 제4 또는 최종 위치에 상응하는 어드레스)로 전송되기 때문에 홀수 경계 정렬인 것이다.
IBM, Technical Disclosure Bulletin, 1984년, 12월호 4247-4248페이지에는 주 장치(master device)에서 종 장치(slave device)로 홀수 경계 정렬 기법으로 메모리간 전송을 실행하기 위해 DMA 모드 동작에 이용되는 시프터 네트워크가 기술되어 있다. 이 시프터 네트워크는 4바이트의 레지스터 3개로 구성된다. 제1레지스터는 주 메모리와 통신하고, 제3레지스터는 종 메모리와 통신한다. 주 메모리로부터의 데이타는 시프터 비트워크에 로드되고, 종 메모리와 잘못 정렬되거나, 정합되지 않은 어드레스의 량에 의해 위 또는 아래로 시프트된다. 이 결과 정렬된 데이타는 제3레지스터를 통해 종 메모리로 전송된다. 시프터 네트워크에서 남아 있는 모든 데이타는 반전된 포맷으로 제3레지스터로 전송되고, 그후 그 다음 데이타가 주 메모리로부터 로드된다. 그후 데이타는 제3레지스터가 하나의 전 워드 데이타를 전송할 수 있도록 현재 제3레지스터에 기억된 바이트의 수만큼 시프트된다.
비록, 참고 문헌에서 홀수 어드레스 경계상에 데이타를 정렬하는 시스템을 기술하고 있지만, 그들 참고 문헌은 DMA 제어기(예를들어, 32-비트 버스 폭을 갖고, 16비트 또는 8비트 크기의 소스/목적지 장치간의 데이타 전송을 실행하는 제어기)보다 작은 소스 및 목적지 장치 사이에서의 DMA 제어기에 의한 데이타 전송은 고려하지 않았다. 더우기, 상기 시스템은, 전송 단계후에, 시프터 네트워크에 남아 있는 데이타가 반전되어 다른 레지스터로 전송될 필요가 있기 때문에 다소 복잡하게 된다.
[발명의 요약]
본 발명의 목적은 홀수 경계 어드레스 상에서 데이타 전송을 실행하는 개선된 방법 및 장치를 제공하는 것이다.
본 발명의 또다른 목적은 홀수 경계 어드레스 상에서 데이타 전송을 쉽게 구현할 수 있고 복잡하지 않은 방법 및 장치를 제공하는 것이다.
본 발명의 또다른 목적은 DMA 데이타 처리 시스템내에서 상이한 크기를 갖는 소스/목적지 장치 사이의 데이타 전송을 홀수 경계 어드레스 상에서 실행하는 방법 및 장치를 제공하는 것이다.
본 발명은 최소의 처리 시간으로 소스와 목적지 장치 사이에 다수의 데이타 항목(예를들어, 바이트)을 전송하는 직접 메모리 액세스 방법 및 장치를 제공함으로써 상기 기술된 목적과 또 다른 목적을 얻을 수 있다. 본 발명은, N을 데이타 버스상의 최대 바이트수라 할 때, 2N-1개의 바이트를 기억하는 임시 기억 레지스터를 포함한다. 하나의 전 데이타 워드(one full data word)(N 바이트 또는 그 이하)는 소스 장치에서 임시 기억 레지스터로 전 데이타 워드로 될 때 까지 로드되고, 가능한 정도까지 목적지 장치의 시작 어드레스와 정열된다. 레지스터에 있는 정렬된 데이타 항목(바이트)은 목적지 장치로 전송되고, 레지스터에 남아 있는 어떤 데이타 항목도 레지스터의 최하위 기억 장소로 롤-다운(roll-down)되며, 다음 전 데이타 워드는 데이타 항목을 포함하지 않는 최상위 기억 장소에서 부터 시작하여 차례로 레지스터의 기억 장소에 로드된다. 전 데이타 워드(예를들어, N 또는 보다 적은 바이트 또는 여러 데이타 항목들)로 될때까지 최하위 기억 장소에 기억된 데이타 항목은 목적지 장치로 전송되고, 레지스터에 남아 있는 데이타 항목은 롤-다운된다. 이러한 데이타 전송 동작은 데이타 항목이 모두 전송될 때까지 계속된다.
본 발명의 특히 중요한 특징중 하나는, 소스 장치로부터 데이타 항목을 최초 몇회 전송한 후에, 전 데이타 워드(즉, N 데이타 항목 또는 바이트)만큼 증가된 양을 목적지 장치로 전송시켜, 데이타 전송 시스템의 처리 속도를 개선시키는 점이다.
[양호한 실시예의 설명]
제1도는 본 발명에 따른 DMA 제어기(1)의 일반적인 외형도를 도시한다. 여러 분야에서 상업적으로 이용 가능한 DMA 제어기가 본 발명을 이행하는데 이용될 수도 있다. 예를들면, 인텔 8237A-5 프로그램 가능한(programmable) DMA 제어기는 본 발명을 이행하는데 필요한 많은 소자와 프로그램 기능을 포함한다. 더우기, 종래의 참고문헌에 기술된 DMA 제어기는 본 발명에 따른 DMA 제어기를 이행하는 많은 소자와 프로그램 기능을 포함한다. 그러나, 제1도를 참조하면, 본 발명에 따른 DMA 제어기(10)는 목적지 장치(destination device)에 제공될 데이타 항목을 임시로 기억하기 위한 임시 기억 레지스터(TSR)(20)의 형태로 한 버퍼 메모리와, 임시 기억 레지스터(20)용 게이팅 회로(30)와, DMA 제어기(10)내에 임시로 기억된 데이타 항목의 카운트를 위한 카운터(40)를 포함한다. 제1도에 도시된 것처럼, 임시 기억 레지스터(20)는 7개의 기억 장소(0-6)를 갖는데, 각각의 기억 장소는 1-바이트(즉, 1데이타 항목)을 기억할 수 있다. 단지 4개의 기억 장소(0-3)만이 DMA 제어기(10)의 데이타-출력버스(DO)에 결합되어 있지만, 데이타-입력 버스(DI)를 통해 기억 장소(0-6)중 어느 하나로 데이타 항목을 판독할 수 있다. 공지된 것처럼, 데이타-입력 버스와 데이타-출력 버스는 두개로 분리된 32-비트 버스 또는 단일 양방향성 32비트 데이타-입력/출력 버스로 될 수 있다.
더우기, DMA 제어기(10)는 32비트 어드레스 버스와, 소스/목적지 장치가 32비트, 16비트 또는 8비트 장치인가를 나타내는 데이타 전송을 수행할 준비가 되어 있는지를 나타내는 준비 라인(ready line)을 포함한다. 어드레스 라인의 특정 비트는 데이타-출력 버스(DO)상의 어느 위치에서 장치가 유효 데이타를 발견할 수 있는지를 목적지 장치에게 나타내주는 바이트 인에이블(BE)신호로 지정된다. 제1도에 도시된 것처럼, 32비트 데이타 버스는 4개의 병렬 8비트 라인을 포함한다. 바이트 인에이블 신호(BE)는 4라인중 어떤 라인에 유효 데이타가 있는지를 목적지 장치에 일러준다. 데이타가 4개의 8-비트 라인중 하나 혹은 여러 라인에 제공될 수 있기 때문에, 어드레스 신호의 4비트가 BE신호로 지정된다(즉, BE 신호의 가능한 모든 조합을 커버하려면 4비트 또는 BE 비트(0-3)가 필요하다.). 이들 유효 조합은 하나이상의 BE 비트가 인에이블될 때는 접속된 바이트 인에이블을 갖는 조합이다.
제2도는 본 발명에 따른 DMA 제어기의 데이타 전송 동작의 흐름도이다. 특히, 제2도는 소스 장치에서 목적지 장치로 데이타와 전송 동작을 설명한다. 이 소스 및 목적지 장치는 둘 모두 메모리로 될 수 있다.
상기 기술된 것처럼, DMA 동작 모드로 소스 장치에서 목적지 장치로 전송될 데이타는 데이타 블럭이라고 공지된 다수의 데이타 항목(바이트)으로 구성되어 있다. 전송될 데이타 블럭은 각각의 바이트가 상이한 어드레스 혹은 기억 장소에 기억되어 있기 때문에, 바이트(8-비트) 혹은 데이타 항목의 순서(순차)(sequence)로 볼 수 있다. 2연속 바이트(즉, 2개의 연속 어드레스 장소로 각각은 1바이트 데이타를 가짐)는 한 워드(16-비트)에 상응하고, 4연속 바이트는(32-비트) 더블 워드(double word)에 상응한다. 소스장치(예를들어, 제1메모리)에서 목적지 장치(예를들어, 제2메모리)까지 데이타 블럭을 전송하기 위해서, DMA 제어기는 시작 또는 초기 어드레스 혹은, 소스 장치의 기억 장소를 수신해야만 하는데, 그 시작 어드레스는, 전송될 데이타의 전체량(예를들어, 바이트의 전체 수)과 함께, 전송될 데이타의 제1바이트가 위치되는 어드레스에 상응한다. 목적지 장치가 메모리인 경우에, DMA 제어기는 소스 장치로부터 전송된 데이타의 제1바이트가 기억될 목적지 장치의 어드레스 장소도 수신해야 한다.
제2도를 참조하면, 본 발명에 따른 블럭 데이타 전송 동작은 도식화된 단계(1-12)인 12단계를 포함한다. 이들 12단계는 우선 개략적인 설명을 한후에 데이타 블럭 전송의 구체적인 실시예를 보일 것이다.
제1단계에서, DMA 제어기(10)는 소스 장치로부터 더블 워드 데이타를 인출(fetch)한다. 상기 기술된 것처럼, 더블 워드 데이타는 4연속 데이타 바이트에 상응한다. 필요한 데이타 바이트는 임시 기억 레지스터(20)에 로드되어 소스 장치 시작 어드레스(이하 "제1데이타-입력 어드레스"라 칭함)가 목적지 장치 시작 어드레스(이하 "제1데이타-출력 어드레스"라 칭함)와 단계(2)에서 정렬된다. 상기 기술된 것처럼, 소스와 목적지 장치 모두에 대한 시작 어드레스는 DMA 제어기에 제공된다. 상기 "정렬(alignment)과정은 제3a도 내지 제4c도 및 제6a도 내지 제6f도에 도시된 특정 실시예를 따라 상세히 기술될 것이다.
상기 정렬후에, 카운터(40)는 단계(3)에서 임시 기억 레지스터내의 정렬된 데이타 바이트의 수와 같게 세트되는데, 그들 정렬된 데이타 바이트는 단계(4)에서 데이타-출력 버스(DO)를 통해 목적지 장치로 전송된다. 그후 카운터(40)는 단계(4)에서 전송된 정렬 바이트 수만큼 단계(5)에서 감소된다. 그후, 단계(6)에서, DMA 제어기(10)는 감소된 카운터(40)가 제로(0)와 동일한지 여부를 결정한다. 만일, 카운터가 단계(6)에서 제로가 되면, 임의의 데이타 항목(바이트)이 임시 기억 레지스터에서 남아있는지, 혹은 남아있지 않는지를 DMA 제어기(10)가 결정하는 단계(7)로 진행한다. 단계(6)에서 카운터가 제로가 아닐 때, 임시 기억 레지스터에 남아있는 모든 데이타 바이트는 단계(9)에서 롤-다운(rolled-down)되고, 그후에는 단계(4)로 진행된다.
임시 기억 레지스터(20)내의 데이타 바이트 또는 항목의 롤-다운은, 제3a도 내지 제4c도 제6a도 내지 제6f도에 따라 상세히 기술될 것이다. 간단히 설명하면, 롤-다운 동작은 임시 기억 레지스터에 채워진 데이타의 최하위 기억 장소에서 임시 기억 레지스터의 최하위 기억 장소로 데이타 바이트를 전송하는 것을 말한다. 단계(9)에서 롤-다운되는 양은 단계(4)에서 최종 전송된 데이타 바이트의 최상위 기억 장소보다 하나 더 큰 값과 같다.
만일, 단계(7)에서, DMA 제어기가 데이타 항목이 임시 기억 레지스터(20)에 남아있지 않다고 결정하면, 단계(8)에서 소스 장치의 다음 더블 워드 데이타를 인출하고, 그 이후의 동작은 단계(2)로 진행된다. 만일, DMA 제어기가 단계(7)에서 데이타 항목이 임시 기억 레지스터에 남았다고 결정하면, 단계(10)에서 데이타 항목의 롤-다운 동작을 실행한다(즉, 임시 기억 레지스터내에 기억된 각각의 데이타 항목(바이트)은 단계(3)에서 최종 전송된 데이타 항목의(최상위 기억 장소+1)만큼 롤-다운된다.).
그후, 동작은 DMA 제어기(10)가 소스 장치로부터 다음 더블 워드를 인출하는 단계(11)로 진행되고, 이 단계(12)에서 인출된 더블 워드는 임시 기억 레지스터(20)에 로드되는데, 데이타가 롤-다운 된후에 그다음 최상위 기억 장소에서부터 시작하여 로드된다. 그후의 동작은 단계(3)로 진행된다.
제2도에 도시된 과정(process)은 데이타 블럭이 소스 장치에서 목적지 장치로 전송될 때까지 계속될 것이다.
제3a도 내지 제3h도를 참조하여, 32-비트 소스 장치에서 32-비트 목적지 장치로 메모리 장소에 기억된 데이타 블럭을 전송하는 과정을 제2도의 단계에 따라 한 실시예를 설명한다. 본 실시예에서, 소스 장치의 어드레스(61)(HEX)에서 시작하는 메모리 장소에 기억된 한 데이터 블록은 목적지 장치로 전송되고, 83(HEX)의 시작 어드레스를 갖는 메모리 장소로 전송되어진다. 따라서, 본 실시예동안, DMA 제어기(10)는 전송될 데이타의 전체량과 함께, 소스 및 목적지 장치(예를들어, 61 및 83)의 시작 어드레스를 제공받는다.
본 설명에 있어서, "데이타 어드레스 X"(또는, 더 일반적으로 "데이타 어드레스")라는 표현은 상기 기술된 것처럼 어드레스(X)에서 시작하는 메모리 장소에 기억된 데이타를 지칭하며, 데이타 어드레스(61)가 어드레스[61-63-(HEX)]로 구성된 더블 워드내에 있기 때문에, 그들 데이타 어드레스는, 제3a도[단계(1)]에 도시된 것처럼, DMA 제어기에 의해 인출되어 데이타-입력 버스(DI)에 배치된다. 제1데이타-입력 어드레스(61)가 제1데이타-출력 어드레스(83)로 정렬되고, 데이타-출력 어드레스(83)가 데이타 어드레스(80-83)로 구성된 더블 워드의 "최종" 또는 "제4"바이트와 상응하기 때문에, 데이타 어드레스(61-63)는 제3b도에 도시된 것처럼 임시 기억 레지스터의 기억 장소(3-5)에 각각 로드된다. 제1도에 도시 및 위에 기술된 것처럼, 데이타-출력 버스(DO)는 임시 기억 레지스터(20)의 기억 장소(0-3)에 결합된다. 데이타 어드레스(61)을 기억장소(3)[즉, 데이타-출력 버스(DO)로 전송해야 하는 데이타 바이트의 최종 또는 제4 기억장소]에 로딩한다는 것은 데이타 어드레스(61)이 목적지 장치의 데이타 어드레스(83)와 정열되거나, 그 데이타 어드레스(83)쪽으로 포인트(pointed to)되는 것을 보장해 주는데, 그 이유는 데이타 어드레스(83)가 데이타 어드레스(80-83)로 구성된 더블 워드의 최종 또는 제4바이트에 상응하기 때문이다.
임시 기억 레지스터(20)의 기억 장소(0-3)에 기억된 데이타 바이트만이 출력 버스(DO)에 전송되기 때문에, 그들 장소(0-3)에 기억된 데이타 바이트만이 목적지 장치의 어드레스로 "정렬"될 수 있다.
그러면, 카운터(40)는 1로 세트되는데, 그 이유는 "데이타 어드레스"(61)만이 임시 기억 어드레스(20)(단계 3)에 정렬되기 때문이다.
그후, 정렬된 데이타 바이트(61)는, 제3c도에 도시된 것처럼, 데이타-출력 버스(DO)를 통해 목적지 장치의 어드레스(83)으로 전송된다(단계 4). 현재 1로 세트된 카운터(40)는 오로지 한개의 정렬된 데이타 바이트(61)만 전송되었기 때문에 1만큼 감소한다(단계 5). 감소된 카운터(40)가 제로와 같게되고(단계 6), 어드레스(62 및 63)에서 데이타 바이트가 임시 기억 레지스터(20)내에서 여전히 남아있기 때문에(단계 7), 데이타 롤-다운 동작(단계 10)을 실행한다.
제3d도는 "데이타 어드레스"(62 및 63)의 롤-다운 동작의 결과를 도시한다. 상기 기술된 것처럼, 롤-다운량은 최종 전송된 데이타 바이트의 최상위 기억 장소보다 1이 더 많은 양으로 된다. 제3b도에 있어서, "데이타 어드레스"(61)(전송된 유일한 데이타 바이트)는 임시 기억 레지스터(20)의 기억 장소(3)에 기억된다. 따라서, "데이타 어드레스"(62 및 63)는 제3d도에 도시된 것처럼, 각각 4기억 장소만큼 롤-다운되어(4=3+1) 기억장소 0 및 1에 있게 된다(단계 10).
그후, 다음 더블 워드[즉, "데이타 어드레스"(64-67)]는 소스 장치로부터 인출되어 제3e도에 도시된 것처럼, 데이타-입력 버스(DI)에 배치된다(단계 11). 그후, 상기 인출된 더블 워드는 데이타(62 및 63)가 롤-다운된 이후에 임시 기억 레지스터(20)에 로드된다. 제3F도에 도시된 것처럼, "데이타 어드레스"(64-67)는 임시 기억 레지스터(20)의 기억 장소(2-5)에 각각 로드된다. 그후, 카운터(40)는 임시 기억 레지스터의 기억 장소(0-3)가 각각 "데이타 어드레스"를 포함하고 있기 때문에 4로 세트된다(단계 3). 그후, 제3g도에 도시된 것처럼, 4개의 정렬된 데이타 어드레스(62-65)는 데이타-출력 버스(DO)를 통해 목적지 장치로 전송된다(단계 4). 그후의 카운터(40)는 4(즉, 전송된 정렬 데이타 바이트의 수; 단계 5) 만큼 감소된다. 감소된 카운터(40)는 제로(0)가 되고(단계 6), "데이타 어드레스"(66 및 67)가 여전히 임시 기억 레지스터(20)에서 남아(단계 7)있기 때문에, "데이타 어드레스"(66 및 67)는 제3h도에 도시된 것처럼 임시 기억 레지스터(20)의 기억 장소(0 및 1)로 각각 롤-다운된다. 특히, 최종 전송된 데이타 바이트의 최상위 기억 장소가 장소(3)이기 때문에. 데이타 어드레스(66 및 67)는 각각 4(4=3+1) 기억장소만큼 롤-다운된다.
이러한 동작은 데이타 블럭의 모든 데이타 항목이 전송될 때까지 계속된다. 따라서, DMA 제어기는 전송될 데이타 바이트의 갯수를 계속 계산해 두어서, 데이타 블럭이 전 전송될 때를 알게될 것이다. 이것을 데이타 블럭내에 포함된 다수의 데이타 바이트와 같도록 초기에 세트되고, 임시 기억 레지스터로부터 하나의 데이타 바이트가 전송될 때마다 매번 감소하는 카운터에 의해 실행된다. 카운터가 제로(0)와 같게되면, 데이타 블럭내의 모든 데이타 바이트는 전송될 것이다.
제4a도 내지 제4c도를 참조하여 32-비트 소스장치와 32-비트 목적지 장치 사이의 블럭 데이타를 전송하는 다른 실시예를 설명한다. 본 실시예에 있어서, 기억 장치의 어드레스(62)(HEX)에서 시작하는 데이타 블럭은 어드레스(81)(HEX)에서 시작하는 목적지 장치로 전송된다.
제4a도를 참조하면, 데이타 어드레스(61)가 어드레스(60-63)로 구성된 더블워드내에 존재하기 때문에, DMA 제어기(10)는 소스 장치로부터 그 더블 워드를 인출하여 데이타-입력 버스(DI)에 배치시킨다(단계 1). 제1데이타-입력 어드레스(52)가 제1데이타-출력 어드레스(81)[더블 워드(80-83)의 "제2"바이트임]로 정렬되어야 하기 때문에, "데이타 어드레스"(62)는 임시 기억 레지스터(20)의 기억 장소(1)(즉 임시 기억 레지스터의 제2기억 장소)에 로드되고, "데이타 어드레스"(63)는 기억 장소(2)에 로드된다(단계 2). 임시 기억 레지스터(20)내에 정렬된 2-데이타 바이트(62 및 63)가 존재하기 때문에, 카운터(40)는 2로 세트된다(단계 3). 그러면, "데이타 어드레스"(62 및 63)는 데이타-출력 버스(DO)를 통해 목적지 장치로 전송되고(단계 4), 카운터(40)는 2만큼 감소된다(단계 5). 감소된 카운터(40)가 제로(0)로 되고(단계 6), 데이타 항목이 임시 기억 레지스터(20)에 하나도 남아 있지 않기 때문에, 다음 더블 워드가 소스 장치로부터 인출(단계 8)되어 제4b도에 도시된 것처럼 데이타-입력 버스(DI)에 배치된다. 인출된 다음 더블 워드가 임시 기억 레지스터(20)에 로드되어, 제1데이타-입력 어드레스(64)가 제1데이타-출력 어드레스(83)와 정렬된다. 목적지 장치의 어드레스(83)가 어드레스(80-83)로 구성된 더블 워드의 "제4 또는 최종" 바이트이기 때문에, 데이타 어드레스(64-67)는 제4b도에 도시된 것처럼 임시 기억 레지스터(20)의 기억 장소(3-6)에 각각 로드된다.
따라서, 비록 "데이타 어드레스"(64)가 소스 장치내의 어드레스(64-67)로 구성된 더블 워드의 제1바이트일지라도, 데이타 어드레스(64)가 목적지 장치내의 어드레스(80-83)로 구성된 더블 워드의 제4 또는 최종 어드레스(83)로 전송되기 때문에 데이타 어드레스(64)는 임시 기억 장소(20)의 장소(0)에 기억되지 않고, 오히려 기억 장소(3)에 기억된다.
그후에 카운터(40)는 1로 세트(단계 3)되고, 정렬된 데이타 어드레스(64)는 제4b도에 도시된 것처럼, 데이타-출력 버스(DO)를 통해 목적지 장치로 전송(단계 4) 된다.
그러면, 카운터(40)는 1만큼 감소(단계 5)된다. 감소된 카운터(40)가 제로(0)가 되고(단계 6), "데이타 어드레스"(65-67)가 임시 기억 레지스터(20)에 남아 있기 때문에, 그들 "데이타 어드레스"(65-67)는 임시 기억 레지스터에서 롤-다운(단계 10)되고, 다음 더블 워드(예를들어, 68, 69, 6A 및 68)는 소스 장치로부터 인출(단계 11)된다. 제4c도에 도시된 것처럼, 다음 인출된 더블 워드는 데이타(65-67)가 롤-다운 된후에 임시 기억 레지스터(20)에서 로드(단계 12)된다.
이와 같은 동작은 데이타 블럭내의 모든 항목(바이트)가 전송될 때까지 계속된다.
제3a도 내지 제4c도로 설명된 상기 실시예에 있어서, 소스와 목적지 장치 모두가 32-비트 장치였다. 그러나, 실제에 있어서는 DMA 제어기(10)가 32-비트 장치뿐만 아니라, 16-비트와 8비트 장치 사이의 데이타 블럭 전송을 실행하는 것이 요구된다. 그러나, 16-비트 및 8-비트 장치는 전체 32-비트 I/O 버스를 갖는 DMA 제어기에 의해 전송된 모든 데이타 바이트를 수신하지 못한다. 특히, 제5도는 DMA 제어기(10)와 32-, 16- 및 8-비트 장치 사이의 버스 접속을 도시한다. 제5도에 도시된 것처럼, 임시 기억 레지스터(20)의 기억 장소(0-3)는 32-비트 데이타-출력 버스(DO)의 4개의 8-비트 라인(BYTES)에 각각 결합된다. 32-비트 장치가 DMA 제어기의 32-비트 데이타-출력 버스(DO)의 4개의 바이트상의 데이타를 수신하기 위해 결합되어 있기 때문에, 임시 기억 레지스터(20)의 기억 장소(0-3)으로부터 전송된 모든 데이타 바이트는 32-비트 장치에 의해 수신될 것이다. 그러나, 16-비트 장치(전체 16-비트 입력 버스를 갖는 장치)는 단지 임시 기억 레지스터(20)의 기억 장소(0 및 1)로부터 전송된 데이타 바이트를 수신할 수 있다. 더우기, 8-비트 장치(전체 8-비트 입력 버스를 갖는 장치)는 오로지 임시 기억 레지스터(20)의 기억 장소(0)으로부터 전송된 데이타 바이트만 수신할 수 있다. 따라서, 임시 기억 레지스터(20)의 기억 장치(2 또는 3)내에 기억된 데이타 바이트는 16- 또는 8-비트 장치로 전송될 수 없음을 알 수 있다.
32-비트 장치 뿐만 아니라 16-비트 및 8-비트 장치로 데이타 전송을 실행하는 DMA 제어기(10)의 순서에 따라, 본 발명은 "데이타 복사"(data duplication) 방법을 이용한다. 16-비트 장치는 임시 기억 레지스터(20)의 기억 장소(2 및 3)로부터 전송된 데이타 바이트를 수신할 수 없고, 8-비트 장치는 임시 기억 레지스터(TSR)(20)의 기억 장소(1, 2 및 3)로부터 전송된 데이타 바이트를 수신할 수 없다. 일반적으로, 데이타 복사 방법은 8-비트 및 16-비트 장치로 전송하는 동안 데이타를 "복사"(duplication)하여, 그 방법을 쓰지 않으면 전송되지 않았을 데이타를 바람직하게 전송할 수 있다.
제6a도 내지 제6f도는 데이타 복사가 필요하게 될 데이타 전송 상태를 도시한다. 또한, 제6a도 내지 제6f도는 그들 각각의 전송에 관련된 바이트-인에이블 신호(BE0-BE3)를 가르킨다. 예를들어, 제6a도에 있어서, 임시 기억 레지스터(20)의 기억 장소(1)로부터 데이타 바이트는 전송된다. 8-비트 장치가 임시 기억 레지스터(20)의 기억 장소(0)에만 로드된 한 데이타 바이트를 수신할 수 있기 때문에, 그 전송은 만일 8-비트 장치일 때 데이타 복사 없이는 전송이 이루어질 수 없다. 그러나, 본 발명에 이용된 데이타 복사 방법에 따르면, 기억 장소(1)에 로드된 데이타 바이트는, 제6a도의 화살표로 도시된 것처럼, 임시 기억 레지스터(20)의 기억 장소(0)으로부터 한 전송에 상응하는 데이타 버스(DO)의 바이트에도 제공될 수 있다. 바이트-인에이블 신호[BE(0-3)]는 임시 기억 레지스터(20)의 장소(0-3)에 기억된 데이타 바이트에 상응한다. 특히, 제5도에 도시된 것처럼 장소(0)에 기억된 데이타 바이트는 BE=1(HEX)에 상응하고, 장소(1)에 기억된 데이타 바이트는 BE=2(HEX)에 상응하고, 장소(2)에 기억된 데이타 바이트는 BE=4(HEX)에 상응하며 장소(3)에 기억된 데이타 바이트는 BE=8(HEX)에 상응한다. 따라서, 가중 시스템(weighting system)을 이용하면, 임시 기억 레지스터(20)에 기억된 데이타 바이트로 가능한 16개 상이한 조합에 대해서 10개의 상이한 조합을 표시할 수 있다. HEX값(0, 5, 9, A, B 및 D)은 TSR내에 있는 데이타는 서로 인접해 있어야 하기 때문에 유효 BE 인에이블 조합이 되지 못한다. 제6a도에서 단지 한 데이타 바이트가 임시 기억 레지스터의 장소(1)의 기억되기 때문에, 바이트-인에이블 신호[BE-0-3)]는 BE=2(HEX)와 같게된다.
다른 실시예로서, 제6e도에서, 데이타 바이트는 임시 기억 레지스터(20)의 장소(2 및 3)에 기억 된다. 따라서, 16-비트 장치가 TSR 장소(0 및 1)에서만 전송된 데이타 바이트를 수신할 수 있고, 8-비트 장치가 TSR 장소(0)에서만 전송된 데이타 바이트를 수신할 수 있기 때문에, 단지 32-비트 장치만 이러한 데이타 바이트를 수신할 수 있다. 제6e도의 화살표로 도시된 것처럼, 장소(2 및 3)에 기억된 데이타 바이트는 16-비트 또는, 8-비트 장치가 전송된 데이타를 수신할 수 있도록 데이타 출력버스 DO에 인가된다.
제6e도에 있어서, 바이트-인에이블 신호 BE는 C(HEX)가 되는데 이 값은 상기 도면에 도시된 대로 임시 기억 레지스터(20)의 장소 2 및 3에 있는 데이타 바이트가 전송되는 상황을 나타낸다. 상기 기술된 데이타 복사를 실행하는 회로는 제8도와 관련하여 설명될 것이다.
제7a도 내지 제7d도는 소스 장치와 목적지 장치 사이의 블럭 데이타 전송의 다른 실시예를 도시한다. 본 실시예에 있어서, 소스 장치와 목적지 장치 모두는 16-비트 장치(즉, 전체 16-비트 데이타 I/O 버스를 갖는 장치)이다. 따라서, DMA 제어기(10)는 소스와 목적지 장치 모두가 16비트-크기의 장치임을 나타내는 신호를 비트-크기 라인(BS)(제1도)를 통해 수신한다.
본 실시예에 있어서, 소스 장치의 어드레스(61)(HEX)에서 시작하는 데이타 블럭은 레지스터(82)(HEX)에서 시작하는 목적지 장치로 전송된다. "데이타 어드레스"(61)는 어드레스(60-63)로 구성된 더블 워드내에 존재하게 된다. 따라서, 데이타 어드레스(60-63)는 소스 장치로부터 인출되어 데이타 입력 버스(DI)에 배치된다. 비록, DMA 제어기가 32-비트 장치이고, 따라서(32-비트)더블 워드를 인출할 수 있다 할지라도, 소스 장치가 16-비트 장치이기 때문에, 단지 한원드(16비트) 소스 장치로부터 한번에 인출될 수가 있다. 따라서, 데이타 바이트(60 및 61)는 첫 번째로 인출되어 데이타-입력 버스, (DI)에 배치된 후에, "데이타 어드레스"(62-63)가 인출되고 데이타-입력 버스(DI)에 배치된다(단계 1). 따라서, 소스 장치가 32-비트보다 적을때(예를들어, 16- 또는, 8-비트 장치), 버스가 4바이트인 경우 DMA 제어기(10)는 더블 워드 경계에 도달할 때까지는 인출 루프에 머물러 있어야만 한다.
더블 워드[즉, "데이타 어드레스"(60-63)]가 인출되면, 그들 데이타 어드레스는 임시 기억 레지스터(20)에 로드되어, 제1데이타-입력 어드레스(61)가 제1데이타-출력 어드레스(82)와 정렬된다. "데이타 어드레스"(82)가 어드레스(80-83)로 구성된 더블 워드의 "제3"어드레스이기 때문에, 데이타 어드레스(61-63)는 임시 기억 레지스터(20)의 기억 장소(2-4)에 로드된다. 특히, 데이타 어드레스(61)는 임시 기억 레지스터(20)의 세 번째 기억장소인 기억장소(2)에 로드되어, 목적지 장치의 제1데이타-출력 어드레스(82)와 정렬된다(단계 2). 그러면, 카운터(40)는 장소(2 및 3). 그후, 정렬된 데이타 어드레스(61-62)는 데이타-출력 버스(DO)를 통해 목적지 장치의 어드레스(82 및 83)에 각각 전송된다. 그러나, 목적지 장치는 16-비트 장치이기 때문에, 임시 기억 레지스터(20)의 기억 장소(0 및 1)에서만 전송된 데이타 바이트를 수신할 수 있다. 따라서, 제7a도에 도시된 것처럼 "데이타 어드레스"(61 및 62)는 데이타 출력 버스 DO상의 장소(0 및 1)에서 데이타 복사되고, 소형장치(16비트)용의 어드레스(82 및 83)로 정렬된다. 이것은 16-비트 장치가 데이타 어드레스(61 및 62)를 수신할 수 있도록 한다.
그러므로, 카운터(40)는 2(즉, 전송된 정렬 바이트의 수; 단계 5)만큼 감소된다. 감소된 카운터(40)가 제로(0)로 되고(단계 6), "데이타 어드레스"(63)가 임시 기억 레지스터(20)에 남게 되기 때문에(단계 7), 그 "데이타 어드레스"(63)는 임시 기억 레지스터(20)에서 롤-다운된다. 특히, 임시 레지스터(20)으로부터 최종 전송된 데이타 바이트의 최상위 기억 장소가 기억 장소(3)이기 때문에, 데이타 어드레스(63)는 제7b도에 도시된 것처럼 기억 장소(4)에서 기억 장소(0)까지 4개의 기억 장소(4=3+1) 만큼 롤-다운 된다(단계 10).
그후, 다음 더블 워드(즉, 64-67)가 인출되고(단계 11), 인출된 더블 워드는 롤-다운된 데이타 어드레스(63)이후에 임시 기억 레지스터(20)에 로드되는데(단계 12), 제7b도에 도시되어 있다. 그러면, 카운터(40)는 4(즉, 임시 기억 레지스터(20)에서 정렬된 바이트의 수; 단계 3)로 세트된다. 그후, 정렬된 데이타 바이트는 임시 기억 레지스터에서 목적지 장치로 데이타-출력 버스(DO)를 통해 전송된다. 4개의 정렬된 데이타 어드레스가 임시 기억 레지스터(20)에 존재하지만, 그 목적지 장치는 16-비트 장치이다. 따라서, 16-비트 목적지 장치는 단지 기억 장소 0 및 1로부터 전송되는 데이타 바이트만을 수신할 수 있다. 그러므로, 기억 장소(0 및 1)에 각각 기억된 데이타 어드레스(63 및 64)만이 제7b도에 도시된 것처럼 16-비트 목적지 장치에 전송된다.
그후에, 카운터(40)는 데이타 바이트(63 및 64)가 전송되기 때문에 2만큼 감소된다(단계 5). 감소된 카운터(40)가 2(즉, 4-2=2; 단계 6)로 되기 때문에, 임시 기억 레지스터(20)내의 전류 데이타 어드레스(65-67)는 제7c도에 도시된 것처럼 롤-다운 된다(단계 9). 특히, 데이타 어드레스(65-67)의 각각은 최종 전송된 데이타 바이트의 최상위 기억 장소가 장소(1)이기 때문에 두-기억 장소 만큼 롤-다운된다. 제7c도를 참조하면, "데이타 어드레스"(65 및 66)는 목적지 장치로 전송되고(단계 4), 카운터(40)는 2만큼 감소(단계 5)된다. 감소된 카운터는 이제 제로(0)가 되고(단계 6), "데이타 어드레스"(67)가 임시 기억 레지스터(20)에 남아 있기 때문에, 그 "데이타 어드레스"(67)는 제7d도에 도시된 것처럼 두 기억 장소 만큼 롤-다운된다(단계 10).
그 이후에, 다음 더블 워드(즉, 68, 69, 6A 및 6B)가 인출되어(단계 11), 또한, 제7d도에 도시된 것처럼 데이타 어드레스(67)가 롤-다운된 이후에 임시 기억 레지스터(20)에 로드된다(단계 12). 이러한 절차는 데이타 블럭내의 모든 데이타 바이트가 목적지 장치로 전송될 때까지 유사한 방법으로 계속된다.
제1도의 게이팅 회로(30)와 임시 기억 레지스터(20)를 실행하는 회로에 대해서 지금 설명한다. 제8도를 참조하면, 임시 기억 레지스터(20)는 7개의 D-형 레지스터(8비트)(D0-D6)를 포함한다. 게이팅 회로(40)는 13개의 멀티플랙서(M0-M6 및 RD1-RD6)를 포함한다. 레지스터(D0-D5)는 멀티플랙서(M0-M5)의 출력을 각각 수신하기 위해 접속된다. 또한, 레지스터(D0-D6)는 멀티플랙서를 통해 데이타 바이트(0DI-6DI)를 각각 수신하기 위해 접속된다. 데이타 바이트(0DI-6DI)는 임시 기억 레지스터(20)의 장소(0-6)에 기억된 데이타 바이트에 각각 상응한다. 각각의 멀티플랙서(M0-M6)는 데이타 세트 신호(Dset)를 수신하는데, Dset는 활성화 되어있을 때, 데이타 입력(0DI-6DI)가 멀티플랙서(M0-M6)으로부터 각각 출력되도록 한다. 따라서, 제2도에 단계(2)동안, 데이타 세트 신호(Dset)는 활성화 되어 소스 장치로부터 인출된 데이타 바이트는 임시 기억 레지스터(20)에 로드될 수 있다.
멀티플랙서(RD1-RD6)는 상기 기술된 롤-다운 동작을 실행하는 기능을 한다. 멀티플랙서는 제8도는 도시된 것처럼 여러 입력과, 선택 신호인 2-비트 롤-다운 신호(RD)를 수신한다. 특히, 4입력중 한 입력은 롤-다운 제어 신호(RD)에 따라 멀티플랙서(RD1-RD6)으로부터 출력된다. 4개의 상이한 롤-다운 신호(RD)중 한 신호는 멀티플랙서(RD1-RD6)에 제공된다. 제9도에 도시된 표는, 주어진 바이트 인에이블 신호(BE)와 32비트("BS 32"), 16비트("BS 16") 및 8비트("BS 8") 각각의 버스 크기에 대해서, 임시 기억 레지스터(20)으로부터 전송된 최종 데이타 바이트의 장소와 그 결과로 정해지는 롤-다운 값 사이의 관계를 도시한다.
특히, 상기 기술되고, 제9도에 도시된 것처럼, 롤-다운 값은 최종 전송된 데이타 바이트의 최상위 기억 장소보다 하나 더 큰 값과 상응하도록 선택된다. 롤-다운 값은 제8도에 도시된 디코더에서 얻을 수 있는데, 이 디코드는 제9도의 표에 도시된 디코딩 기능을 한다. 예를들어, 목적지 장치가 32-비트 장치고, 4데이타 바이트가 레지스터(D2-D5)에 각각 로드된다고 가정하자. 레지스터(D2 및 D3)에 기억된 데이타 바이트는 목적지 장치에 전송될 것이다. 이러한 전송은 바이트 인에이블 신호 BE가 C(HEX)인 경우에 해당한다. 이러한 경우에, 최종 전송된 데이타 바이트의 최상위 기억 장소는 임시 기억 레지스터(20)의 레지스터(D3)에 상응하는 장소(3)가 된다. 따라서, 롤-다운 신호(RD=4)는 선택되어 멀티플랙서(RD1-RD6)에 제공된다. 롤-다운 선택 신호(RD=4)는 멀티플랙서(RD1-RD6)가 제4입력을 출력하도록 한다. 그러므로, 멀티플랙서(RD1)는 레지스터(D4)에 기억된 데이타 바이트를 출력하고, 멀티플랙서(RD2)는 레지스터(D5)에 기억된 데이타 바이트를 출력하게 될 것이다. 이러한 과정 동안에, 데이타 세트 신호(Dset)는 활성화되지 못하여, 멀티플랙서(M0 내지 M5)가 멀티플랙서(RD1 내지 RD6)각각의 출력을 선택하게 된다. 그러므로, 롤-다운 동작이 끝나면, 레지스터(D4 및 D5)에 이미 기억된 데이타 바이트는 각각 레지스터(D0 및 D1)에 기억될 것이다.
본 발명의 데이타 복사를 실행하는 게이팅 회로에 대해서 지금 설명한다.
상기 기술된 것처럼, 제6a도 내지 제6f도에 도시된 그들 데이타 전송 상태는 16-비트 또는 8-비트 장치로 적당히 전송될 수 없다. 그 이유는 DMA 제어기(10)의 출력 버스가 32-비트이고, 그에 반해서, 16-비트 및 8-비트 목적지 장치의 입력 버스는 각각 16-비트 및 8비트이기 때문이다. 즉, 임시 기억 레지스터(20)의 레지스터(D2 및 D3)에 기억된 데이타 바이트는 16-비트 또는 8-비트 장치에 의해 수신될 수 없다. 따라서, 레지스터(D2 및 D3)에 기억된 데이타 바이트를 16비트 또는 8비트 장치가 수신하기 위해서는 그들 데이타 바이트를 데이타-출력 버스(D0)에 배치시켜, 그들 데이타 바이트를 레지스터(D0 및 D1)(16-비트 목적지 장치인 경우) 또는 레지스터(D0)(8-비트 목적지 장치인 경우)의 출력에 상응하도록 할 필요가 있다.
제10도는 본 발명의 "데이타 복사(data duplication)"방법을 실행하는 게이팅 회로를 도시한 회로도이다. 데이타 복사 게이팅 회로는, 제10도에 도시된 것처럼, 두개의 멀티플랙서(60 및 70)과 두개의 디코더(80 및 90)를 사용하여 구현할 수 있다. 멀티플랙서(60)는 레지스터(D1 및 D3)의 출력을 수신하도록 접속된다. 멀티플랙서(70)는 레지스터(D0 내지 D3)의 출력을 수신하도록 접속된다. 또한, 멀티플랙서(60)는 디코더(80)의 출력인 선택 신호를 수신하도록 접속되고, 멀티플랙서(70)는 디코더(90)의 출력인 선택 신호를 수신하도록 접속된다.
디코더(80 및 90)는 바이트-인에이블 신호[BE(0-3)]를 수신하도록 각각 접속된다. 제1도와 관련하여 기술한 것처럼, 바이트 인에이블 신호[BE(0-3)]는 목적지 장치에게 32-비트 데이타-출력 라인(D0)상에 유효 데이타가 발견될 수 있는 곳을 가르킨다. 다시 말해서, 바이트 인에이블 신호[BE(0-3)]는 32비트 데이타 출력 버스상의 어디에서 들어오고 있는 데이타를 찾아야 하는지 목적지 장치에 알려준다.
두 디코더(80 및 90)는 바이트-인에이블 신호[BE(0-3)]를 수신하여, 그 신호에 따라, 선택 신호를 멀티플랙서(60 및 70)에 각각 출력한다. 예를들어, 바이트-인에이블 신호[BE(0-3)]가 E(즉, BE=E HEX)와 같게되면, 디코더 회로(80 및 90)는 멀티플랙서(60 및 70)으로 각각 선택 신호를 출력하는데, 멀티플랙서(60 및 70)의 제2입력이 선택될 수 있도록 선택한다. 따라서, 멀티플랙서(70 및 80)는 그들의 출력(8비트)으로 레지스터(D1)으로부터 출력을 선택할 것이다. 본 실시예는 제6c도에 도시된 상태에 상응한다.
반면에, 만일 바이트 인에이블 신호(BE)가 C(즉, BE=C), 즉, 제6e도에서 데이타 전송 상태에 상응하는 경우를 예로들면, 디코더(80)는 한 선택 신호를 멀티플랙서(60)로 출력시켜 그 멀티플랙서는 레지스터(D3)의 출력을 선택하고, 디코더(90)는 한 선택 신호를 멀티플랙서(70)으로 출력시켜 그 멀티플랙서(70)가 레지스터(D2)의 출력을 선택할 것이다.
이러한 방법으로, 임시 기억 레지스터(20)의 보다 상위 기억 장소에 기억된 데이타 바이트가 16-비트 및 8-비트 장치로 전송될 수 있음을 알 수 있다. 제6a도 내지 제6f도와 관련되어 기술된 것처럼, DMA 제어기(10)는 임시 기억 레지스터(20)의 장소(0-3)중에 어떤 장소에 어떻게 데이타 바이트가 기억되어 있는지를 나타내는 임의의 바이트-인에이블 신호(BE)를 출력시킨다. 그러나, 바이트 인에이블 신호 BE가 0-3인 경우 소스/목적지 장치를 32비트라고 가정한 때이다. 따라서, 본 발명에 이용된 데이타 복사 방법을 사용할 때, 바이트 인에이블 신호[BE(0-3)]는 32-비트 소스/목적지 장치 사이의 데이타 전송이 이용된 데이타-출력 버스(D0)의 동일한 8-비트 라인을 항상 나타내는 것은 아니다. 바이트 인에이블 신호 BE(0-3)이 데이타 전송에 이용되는 데이타 출력 버스 D0가 8비트 라인과 상응하도록 하기 위해서는, DMA 제어기(10)로부터 제공된 바이트 인에이블 신호[BE(0-3)]를 디코드 하는 제10도의 디코더(80) 또는 디코더(90)중 어느 하나와 유사한 디코더를 16-비트 및 8-비트 장치가 포함하는 것이 필요하다.
비록, 특정 게이팅 회로가 제9도 및 제10도에 관련하여 기술되어 있지만, 본 기술에 숙련된 사람들은 본 발명의 롤-다운 및 데이타 복사 방법을 실시하는데 다른 회로가 이용될 수 있음을 알 수 있을 것이다.
더우기, 본 발명을 데이타 전송 DMA 모드와 관련하여 기술하였지만, 본 기술에 숙련된 사람들은 본 발명의 데이타 전송 회로 및 방법을 CPU에 사용할 수도 있음을 알 수 있을 것이다.

Claims (20)

  1. 여러개의 데이타 항목중 각각은 여러개의 데이타 비트들로 정의하고, 소스 장치(source device) 및 목적지장치(Destination device) 각각은 여러개의 전 데이타 워드 장소(full data word location)들을 가지며, 여기서 다수의 전 데이타 워드 장소중 각각은 순차 기억 장소를 나타내는 소정의 수 N으로 정의하며, 상기 순차 기억 장소 각각은 전 데이타 워드 장소의 N개의 상이한 장소들중 한개에 대응하며, 전 데이타 워드 장소의 N개의 기억 장소에 기억된 데이타 항목들이 전 데이타 워드를 구성하며, 여기서 전 데이타 워드 장소의 N개의 순차 기억 장소들중 제1기억 장소에 기억된 데이타 항목을 짝수 데이타 항목(Even data item)이라 칭하고, 전 데이타 워드 장소의 N개의 순차 기억 장소들중 제1기억 장소에 기억되지 않은 데이타 항목을 홀수 데이타 항목(odd data item)이라 칭하며, 제1소정 기억 장소에 기억된 데이타 항목을 포함하는 소스 장치의 전 데이타 워드 장소를 Si 전 데이타 워드 장소라고 칭할 때, 소스 장치의 제1소정 기억 장소에서 시작하는 순차 기억 장소에 기억된 여러개의 데이타 항목들을 목적지 장치의 제1소정 기억 장소에서 시작하는 순차 기억 장소로 전송하는 방법에 있어서, 가) N으로 표시된 순차 레지스터 기억 장소는 임시 전 데이타 워드 장소로 정의하며, N개의 순차 레지스터 기억 장소중 각각은 임시 전 데이타 워드 장소인 N개의 상이한 장소중 한개에 대응하고, 레지스터에 전송되는 최소한 한 데이타 항목은 다음 전 데이타 워드 Si+1의 짝수 데이타 항목 직전까지 소스 장치의 제1소정 기억 장소에 기억된 데이타 항목에서 시작하는 일련의 데이타 항목에 대응하며, "최소한 한 데이타 항목"은 소스 장치의 제1소정 기억 장소에 대응하는 데이타 항목만이라도 목적지 장치의 제1소정 기억 장소에 정열하도록 하게끔 레지스터에 전송되며, 임시 전 데이타 워드 장소에 대하여, 주어진 목적지 장치 기억 장소를 포함하는 목적지 장치 전 데이타 워드 장소의 주어진 데이타 항목이 기억되는 경우에만 레지스터에 기억된 주어진 데이타 항목이 목적지 장치의 주어진 기억 장소에 정렬되며, "최소한 한 데이타 항목"을 최하위 기억 장소에서 최상위 기억 장소까지 분포된 여러개의 순차 기억 장소들을 갖는 임시 기억 레지스터로 소스 장치에서 부터 전송하는 단계와 나) 레지스터내에 있는 정렬된 모든 데이타 항목을 목적지 장치에 전송하는 단계와 다) 레지스터에 남아있는 모든 데이타 항목을 최하위 기억장소까지 순차적으로 롤-다운(roll-down)하는 단계와 라) 다음 전 데이타 워드 Si+1의 짝수 데이타 항목에 대응하는 기억장소에서 시작하여 후속의 데이타 워드 Si+2의 짝수 데이타 항목에 대응하는 기억 장소 직전까지 소스 장치로부터의 한 데이타 워드를, 데이타 항목을 포함하는 레지스터의 최상위 기억 장소보다 더 높은 기억 장소인 레지스터의 순차 기억 장소로 로드하는 단계와, 마) 레지스터에 기억된 "최소한 한 데이타 항목"을, 데이타 항목을 포함하는 최하위 기억장소에서 시작해서 목적지 장치까지 전송하는 단계와 바) 상기 여러개의 데이타 항목의 전송이 완료될 때까지 다)-마) 단계를 반복하는 단계를 포함하는 데이타 항목 전송방법.
  2. 제1항에 있어서, 상기 레지스터는, 2N-1개의 데이타 바이트를 기억할 수 있는 기억 장소를 포함하는 데이타 항목 전송방법.
  3. 제2항에 있어서, N이 4인 데이타 항목 전송방법.
  4. 여러개의 데이타 항목중 각각은 여러개의 데이타 비트들로 정의하고, 소스 장치 및 목적지장치 각각은 여러개의 전 데이타 워드 장소(full data word location)들을 가지며, 여기서 다수의 전 데이타 워드 장소중 각각은 순차 기억 장소를 나타내는 소정의 수 N으로 정의하며, 상기 순차 기억 장소 각각은 전 데이타 워드 장소의 N개의 상이한 장소들중 한개에 대응하며, 전 데이타 워드 장소의 N개의 기억 장소에 기억된 데이타 항목들이 전 데이타 워드를 구성하며, 여기서 전 데이타 워드 장소의 N개의 순차 기억 장소들중 제1기억 장소에 기억된 데이타 항목을 짝수 데이타 항목(Even data item)이라 칭하고, 전 데이타 워드 장소의 N개의 순차 기억 장소들중 제1기억 장소에 기억되지 않은 데이타 항목은 홀수 데이타 항목(odd data item)이라 칭하며, 제1소정 기억 장소에 기억된 데이타 항목을 포함하는 소스 장치의 전 데이타 워드 장소를 Si 전 데이타 워드 장소라고 칭할 때, 소스 장치의 제1소정 기억 장소에서 시작하는 순차 기억 장소에 기억된 여러개의 데이타 항목들을 목적지 장치의 제1소정 기억 장소에서 시작하는 순차 기억 장소로 전송하는 방법에 있어서, 가) N으로 표시된 순차 레지스터 기억 장소는 임시 전 데이타 워드 장소로 정의하는데, N개의 순차 레지스터 기억 장소중 각각은 임시 전 데이타 워드 장소인 N개의 상이한 장소중 한개에 대응하고, 레지스터에 전송되는 최소한 한 데이타 항목은 다음 전 데이타 워드 Si+1의 짝수 데이타 항목 직전까지 소스 장치의 제1소정 기억 장소에 기억된 데이타 항목에서 시작하는 일련의 데이타 항목에 대응하며, "최소한 한 데이타 항목"은 소스 장치의 제1소정 기억 장소에 대응하는 데이타 항목만이라도 목적지 장치의 제1소정 기억 장소에 정열하도록 하게끔 레지스터에 전송되며, 임시 전 데이타 워드 장소에 대하여, 주어진 목적지 장치 기억 장소를 포함하는 목적지 장치 전 데이타 워드 장소의 주어진 목적 장치 기억 장소의 상대 위치와 같은 상태 위치를 가지며, N개의 지정된 레지스터기의 장소를 1개에 주어진 데이타 항목이 기억되는 경우에만 레지스터에 기억된 주어진 데이타 항목이 목적지 장치의 주어진 기억 장소에 정렬되며, "최소한 한 데이타 항목"을 최하위 기억 장소에서 최상위 기억 장소까지 분포된 여러개의 순차 기억 장소들을 갖는 임시 기억 레지스터로 소스 장치에서 부터 전송하는 단계와 나) 레지스터내에 있는 정렬된 모든 항목을 데이타 버스를 통해 목적지 장치로 전송하여, 전송된 데이타 항목이 목적지 장치가 전송된 데이타 항목을 수신할 수 있는 데이타 버스상의 장소에 배치하는 단계와 다) 레지스터에 남아있는 모든 데이타 항목을 최하위 기억장소까지 순차적으로 롤-다운(roll-down)하는 단계와 라) 다음 전 데이타 워드 Si+1의 짝수 데이타 항목에 대응하는 기억장소에서 시작하여 후속의 데이타 워드 Si+2의 짝수 데이타 항목에 대응하는 기억 장소 직전까지 소스 장치로부터의 전 데이타 워드를, 데이타 항목을 포함하는 레지스터의 최상위 기억 장소보다 더 높은 기억 장소인 레지스터의 순차 기억 장소로 로드하는 단계와, 마) 레지스터에 기억된 "최소한 한 데이타 항목"을, 데이타 항목을 포함하는 최하위 기억장소에서 시작해서 목적지 장치까지 전송하는 단계와 바) 상기 여러개의 데이타 항목의 전송이 완료될 때까지 다)-마) 단계를 반복하는 단계를 포함하는 데이타 항목 전송방법.
  5. 제4항에 있어서, 카운터를 레지스터에 정열된 데이타 어드래스의 수로 세트시키는 단계, 및 상기 전 데이타 워드 로드 단계를 카운터가 영이된 후에만 실행하는 단계를 포함하는 데이타 전송 방법.
  6. 제5항에 있어서, 상기 카운터 세팅 단계가 레지스터에서 목적지 장치로 전송된 데이타 항목의 수만큼만 감소하는 카운터를 포함하는 데이타 전송 방법.
  7. 제5항에 있어서, 카운터가 영이되어야 비로소 레지스터에 데이타 항목이 남아있는지 여부를 결정하는 단계를 더 포함하며, 카운터가 영이될 뿐만 아니라 상기 결정단계가 최소한 한개의 데이타 항목이라도 레지스터에 남아있다고 결정한 경우에만, 레지스터에 있는 데이타 항목을 최하위 기억 장소까지 차례대로 롤-다운시키는 단계가 실행되는 데이타 전송방법.
  8. 여러개의 데이타 항목중 각각은 여러개의 데이타 비트들로 정의하고, 소스 장치(source device) 및 목적지장치(Destination device) 각각은 여러개의 전 데이타 워드 장소(full data word location)들을 가지며, 여기서 다수의 전 데이타 워드 장소중 각각은 순차 기억 장소를 나타내는 소정의 수 N으로 정의하며, 상기 순차 기억 장소 각각은 전 데이타 워드 장소의 N개의 상이한 장소들중 한개에 대응하며, 전 데이타 워드 장소의 N개의 기억 장소에 기억된 데이타 항목들이 전 데이타 워드를 구성하며, 여기서 전 데이타 워드 장소인 N개의 순차 기억 장소들중 제1기억 장소에 기억된 데이타 항목을 짝수 데이타 항목(Even data item)이라 칭하고, 전 데이타 워드 장소의 N개의 순차 기억 장소들중 제1기억 장소에 기억되지 않은 데이타 항목은 홀수 데이타 항목(odd data item)이라 칭하며, 제1소정 기억 장소에 기억된 데이타 항목을 포함하는 소스 장치의 전 데이타 워드 장소를 Si 전 데이타 워드 장소라고 칭할 때, 소스 장치의 제1소정 기억 장소에서 시작하는 순차 기억 장소에 기억된 여러개의 데이타 항목들을 목적지 장치의 제1소정 기억 장소에서 시작하는 순차 기억 장소로 전송하는 장치에 있어서, 가) N으로 표시된 순차 레지스터 기억 장소는 임시 전 데이타 워드 장소로 정의하며, N개의 순차 레지스터 기억 장소중 각각은 임시 전 데이타 워드 장소인 N개의 상이한 장소중 한개에 대응하고, 레지스터에 전송되는 "최소한 한 데이타 항목이" 다음 전 데이타 워드 Si+1의 짝수 데이타 항목 직전까지 소스 장치의 제1소정 기억 장소에 기억된 데이타 항목에서 시작하는 일련의 데이타 항목에 대응하며, "최소한 한 데이타 항목"은 소스 장치의 제1소정 기억 장소에 대응하는 데이타 항목만이라도 목적지 장치의 제1소정 기억 장소에 정열하도록 하게끔 레지스터에 전송되며, 임시 전 데이타 워드 장소에 대하여, 주어진 목적지 장치 기억 장소를 포함하는 목적지 장치 전 데이타 워드 장소의 주어진 데이타 목적지 장치 기억 장소의 상대 위치와 같은 상대 위치를 가지며 N개의 지정된 레지스터 기의 장소중 1개에 주어진 항목이 기억되는 경우에만 레지스터에 기억된 주어진 데이타 항목이 목적지 장치의 주어진 기억 장소에 정렬되며, "최소한 한 데이타 항목"을 최하위 기억 장소에서 최상위 기억 장소까지 분포된 여러개의 순차 기억 장소들을 갖는 임시 기억 레지스터로 소스 장치에서 부터 전송하는 수단과 나) 레지스터내에 있는 정렬된 모든 데이타 항목을 목적지 장치에 전송하는 수단과 다) 레지스터에 남아있는 모든 데이타 항목을 최하위 기억장소까지 순차적으로 롤-다운(roll-down)하는 수단과 라) 다음 전 데이타 워드 Si+1의 짝수 데이타 항목에 대응하는 기억장소에서 시작하여 후속의 데이타 워드 Si+2의 짝수 데이타 항목에 대응하는 기억 장소 직전까지 소스 장치로부터의 한 데이타 워드를, 데이타 항목을 포함하는 레지스터의 최상위 기억 장소보다 더 높은 기억 장소인 레지스터의 순차 기억 장소로 로드되는 로딩(loading) 수단을 구비하며, 상기 전송 수단은 레지스터에 기억된 "최소한 한 데이타 항목"을, 데이타 항목을 포함하는 최하위 기억장소에서 시작해서 목적지 장치까지 전송할 수 있는 데이타 항목 전송 장치.
  9. 제8항에 있어서, 카운터와, 상기 레지스터내에 정렬된 데이타 항목의 수와 동일하게 상기 카운터를 세팅하는 수단과, 상기 레지스터에서 목적지 장치로 전송된 다수의 데이타 항목의 수만큼 상기 카운터를 감소시키는 수단을 더 포함하는 데이타 항목 전송 장치.
  10. 제9항에 있어서, 상기 로딩 수단은 카운터가 제로(0)로 된 이후에만 전 데이타 워드를 상기 레지스터에 로딩시킬 수 있는 데이타 항목 전송 장치.
  11. 제10항에 있어서, 상기 레지스터는 데이타 2N-1 바이트용 기억 장소를 갖는 데이타 항목 전송 장치.
  12. 제11항에 있어서, 상기 N은 4인 데이타 항목 전송 장치.
  13. 제8항에 있어서, 상기 장치는 DMA 제어기인 데이타 항목 전송 장치.
  14. 제8항에 있어서, 상기 임시 기억 레지스터는 2N-1개의 래치를 포함하는 데이타 항목 전송 장치.
  15. 제14항에 있어서, 상기 래치의 N개의 출력은 목적지 장치에 결합되고, 상기 전송 수단은 상기 래치의 출력과 상기 출력 버스 사이를 결합하는 출력 버스와, 상기 래치의 출력과 상기 출력 버스 사이에 배치된 게이팅 수단을 포함하며, 상기 게이팅 수단은 상기 여러 래치의 출력을 수신하여 상기 래치중 최소한 다른 한 래치의 출력에 상응하는 출력 버스상의 장소에 상기 래치중 최소한 한 래치의 출력을 배치시키는 동작을 하며, 상기 각각의 래치는 임시 기억 레지스터의 다수의 연속 기억 장소중 다른 기억 장소에 대응하는 데이타 항목 전송 장치.
  16. 제15항에 있어서, 상기 장치는 유효 데이타가 발견될 수 있는 출력 버스상의 장소를 식별하는 바이트-인에이블 신호를 출력하는 수단을 포함하는 데이타 항목 전송 장치.
  17. 제16항에 있어서, 상기 게이팅 수단은 바이트-인에이블 신호에 의해 제어되는 데이타 항목 전송 장치.
  18. 제8항에 있어서, 상기 롤-다운 수단은 다수의 멀티플랙서를 포함하고, 상기 롤-다운 수단에 의한 레지스터내의 데이타 항목의 롤-다운량은 바이트-인에이블 신호에 따라 결정되는 데이타 항목 전송 장치.
  19. 제18항에 있어서, 상기 로딩 수단은 임시 기억 레지스터의 입력과 롤-다운 수단의 출력 사이에 결합된 다수의 멀티플랙서를 포함하며, 상기 로딩 수단의 다수의 멀티플랙서 각각은 소스 장치로부터 데이타 항목을 수신하는 입력을 갖는 데이타 항목 전송 장치.
  20. 제15항에 있어서, 상기 래치중 최소한 또다른 래치는 상기 래치의 최소한 한 래치에 상응하는 임시 기억 레지스터의 기억 장소보다 낮은 임시 기억 레지스터의 최상위 기억 장소에 상응하는 데이타 항목 전송 장치.
KR1019900016658A 1989-10-31 1990-10-19 데이타 항목 전송 방법 및 장치 KR940002088B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US07/430,693 US5170477A (en) 1989-10-31 1989-10-31 Odd boundary address aligned direct memory acess device and method
US430,693 1989-10-31
US430693 1989-10-31

Publications (2)

Publication Number Publication Date
KR910008587A KR910008587A (ko) 1991-05-31
KR940002088B1 true KR940002088B1 (ko) 1994-03-17

Family

ID=23708619

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019900016658A KR940002088B1 (ko) 1989-10-31 1990-10-19 데이타 항목 전송 방법 및 장치

Country Status (5)

Country Link
US (1) US5170477A (ko)
EP (1) EP0425849B1 (ko)
JP (1) JPH0619752B2 (ko)
KR (1) KR940002088B1 (ko)
DE (1) DE69027907D1 (ko)

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5379443A (en) * 1990-02-09 1995-01-03 Intel Corporation Microprocessor providing encoded information on byte enable lines indicating whether reading code or data, location of code/data on data lines, and bit width of code/data
JP2606942B2 (ja) * 1990-02-22 1997-05-07 株式会社東芝 Dmaコントローラ
AU652371B2 (en) * 1990-06-29 1994-08-25 Fujitsu Limited Data transfer system
US5465340A (en) * 1992-01-30 1995-11-07 Digital Equipment Corporation Direct memory access controller handling exceptions during transferring multiple bytes in parallel
US5548762A (en) * 1992-01-30 1996-08-20 Digital Equipment Corporation Implementation efficient interrupt select mechanism
US5721954A (en) * 1992-04-13 1998-02-24 At&T Global Information Solutions Company Intelligent SCSI-2/DMA processor
US5412782A (en) 1992-07-02 1995-05-02 3Com Corporation Programmed I/O ethernet adapter with early interrupts for accelerating data transfer
US5392406A (en) * 1992-09-18 1995-02-21 3Com Corporation DMA data path aligner and network adaptor utilizing same
JP2778913B2 (ja) * 1994-04-26 1998-07-23 株式会社東芝 マルチプロセッサシステム及びメモリアロケーション方法
US5566312A (en) * 1994-05-23 1996-10-15 Advanced Micro Devices Processimg unit with programmable mis-aligned byte addressing
US5623697A (en) * 1994-11-30 1997-04-22 International Business Machines Corporation Bridge between two buses of a computer system with a direct memory access controller having a high address extension and a high count extension
US5687328A (en) * 1995-05-16 1997-11-11 National Semiconductor Corporation Method and apparatus for aligning data for transfer between a source memory and a destination memory over a multibit bus
US5671373A (en) * 1995-06-08 1997-09-23 Hewlett-Packard Company Data bus protocol for computer graphics system
US6125435A (en) * 1995-09-13 2000-09-26 Lexar Media, Inc. Alignment of cluster address to block addresses within a semiconductor non-volatile mass storage memory
US5862407A (en) * 1996-03-15 1999-01-19 Rendition, Inc. System for performing DMA byte swapping within each data element in accordance to swapping indication bits within a DMA command
US6122717A (en) * 1996-06-17 2000-09-19 Integrated Device Technology, Inc. Methods and apparatus for a memory that supports a variable number of bytes per logical cell and a variable number of cells
US6065070A (en) * 1998-03-18 2000-05-16 National Semiconductor Corporation DMA configurable channel with memory width N and with steering logic comprising N multiplexors, each multiplexor having a single one-byte input and N one-byte outputs
JP2001022637A (ja) * 1999-07-07 2001-01-26 Fujitsu Ltd メモリ制御装置及び情報処理装置
FI20010924L (fi) * 2001-05-03 2002-11-04 Nokia Corp Mikroprosessorin muistinkäsittely
US7016987B2 (en) * 2001-06-21 2006-03-21 Integrated Device Technology, Inc. Transaction aligner microarchitecture
US6993619B2 (en) * 2003-03-28 2006-01-31 International Business Machines Corporation Single request data transfer regardless of size and alignment
US7506133B2 (en) * 2003-08-20 2009-03-17 Seiko Epson Corporation Method and apparatus for high speed addressing of a memory space from a relatively small address space
EP1807769A1 (en) * 2004-09-10 2007-07-18 Freescale Semiconductor, Inc. Apparatus and method for multiple endian mode bus matching
US20070050592A1 (en) * 2005-08-31 2007-03-01 Gschwind Michael K Method and apparatus for accessing misaligned data streams
US8156310B2 (en) * 2006-09-11 2012-04-10 International Business Machines Corporation Method and apparatus for data stream alignment support
US8838906B2 (en) * 2010-01-08 2014-09-16 International Business Machines Corporation Evict on write, a management strategy for a prefetch unit and/or first level cache in a multiprocessor system with speculative execution
US20110219215A1 (en) 2010-01-15 2011-09-08 International Business Machines Corporation Atomicity: a multi-pronged approach
JP5035387B2 (ja) 2010-05-10 2012-09-26 住友電気工業株式会社 研磨剤、化合物半導体の製造方法および半導体デバイスの製造方法
US11755224B2 (en) * 2017-07-27 2023-09-12 EMC IP Holding Company LLC Storing data in slices of different sizes within different storage tiers
US12066955B2 (en) * 2021-05-19 2024-08-20 Hughes Network Systems, Llc System and method for enhancing throughput during data transfer

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4271466A (en) * 1975-02-20 1981-06-02 Panafacom Limited Direct memory access control system with byte/word control of data bus
JPS5911135B2 (ja) * 1979-01-17 1984-03-13 株式会社日立製作所 デ−タ処理システムのデ−タ転送方式
US4309754A (en) * 1979-07-30 1982-01-05 International Business Machines Corp. Data interface mechanism for interfacing bit-parallel data buses of different bit width
JPS5790740A (en) * 1980-11-26 1982-06-05 Nec Corp Information transfer device
US4471427A (en) * 1981-12-01 1984-09-11 Burroughs Corporation Direct memory access logic system for a data transfer network
US4542457A (en) * 1983-01-11 1985-09-17 Burroughs Corporation Burst mode data block transfer system
JPS59226923A (ja) * 1983-05-27 1984-12-20 インタ−ナシヨナル ビジネス マシ−ンズ コ−ポレ−シヨン バスインタ−フエ−ス装置
US5038320A (en) * 1987-03-13 1991-08-06 International Business Machines Corp. Computer system with automatic initialization of pluggable option cards
EP0290172A3 (en) * 1987-04-30 1991-01-16 Advanced Micro Devices, Inc. Bidirectional fifo with variable byte boundary and data path width change
JPH0821013B2 (ja) * 1987-05-13 1996-03-04 株式会社日立製作所 ダイレクトメモリアクセスオ−ダ競合制御方式

Also Published As

Publication number Publication date
DE69027907D1 (de) 1996-08-29
EP0425849A2 (en) 1991-05-08
EP0425849B1 (en) 1996-07-24
US5170477A (en) 1992-12-08
JPH03147168A (ja) 1991-06-24
KR910008587A (ko) 1991-05-31
JPH0619752B2 (ja) 1994-03-16
EP0425849A3 (en) 1992-07-29

Similar Documents

Publication Publication Date Title
KR940002088B1 (ko) 데이타 항목 전송 방법 및 장치
US5394528A (en) Data processor with bus-sizing function
US5276684A (en) High performance I/O processor
US5251303A (en) System for DMA block data transfer based on linked control blocks
KR950008226B1 (ko) 버스트 전송 모드를 갖는 버스 마스터
US4860244A (en) Buffer system for input/output portion of digital data processing system
US5283883A (en) Method and direct memory access controller for asynchronously reading/writing data from/to a memory with improved throughput
US5850632A (en) Memory access controller utilizing cache memory to store configuration information
US4169284A (en) Cache control for concurrent access
US5261073A (en) Method and apparatus for providing memory system status signals
US4371924A (en) Computer system apparatus for prefetching data requested by a peripheral device from memory
US4646237A (en) Data handling system for handling data transfers between a cache memory and a main memory
JP3940435B2 (ja) ダイレクト・メモリ・アクセス(dma)バイト・スワッピングを実行する方法および装置
US20040095355A1 (en) Computer chipsets having data reordering mechanism
US5321400A (en) Serial data interface circuit dealing with a plurality of receiving modes
US5265228A (en) Apparatus for transfer of data units between buses
US5687328A (en) Method and apparatus for aligning data for transfer between a source memory and a destination memory over a multibit bus
JPH03189843A (ja) データ処理システムおよび方法
US4575796A (en) Information processing unit
US6141741A (en) Computer system with a shared address bus and pipelined write operations
US20080028110A1 (en) Peripheral Supplied Addressing In A Simple DMA
US4737908A (en) Buffer memory control system
US5822766A (en) Main memory interface for high speed data transfer
JPH05282242A (ja) バス制御方式
JPH10111798A (ja) 情報処理装置

Legal Events

Date Code Title Description
A201 Request for examination
PA0109 Patent application

Patent event code: PA01091R01D

Comment text: Patent Application

Patent event date: 19901019

PA0201 Request for examination

Patent event code: PA02012R01D

Patent event date: 19901019

Comment text: Request for Examination of Application

PG1501 Laying open of application
E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

Comment text: Notification of reason for refusal

Patent event date: 19930331

Patent event code: PE09021S01D

G160 Decision to publish patent application
PG1605 Publication of application before grant of patent

Comment text: Decision on Publication of Application

Patent event code: PG16051S01I

Patent event date: 19940222

E701 Decision to grant or registration of patent right
PE0701 Decision of registration

Patent event code: PE07011S01D

Comment text: Decision to Grant Registration

Patent event date: 19940530

GRNT Written decision to grant
PR0701 Registration of establishment

Comment text: Registration of Establishment

Patent event date: 19940707

Patent event code: PR07011E01D

PR1002 Payment of registration fee

Payment date: 19940707

End annual number: 3

Start annual number: 1

PR1001 Payment of annual fee

Payment date: 19970220

Start annual number: 4

End annual number: 4

FPAY Annual fee payment

Payment date: 19980226

Year of fee payment: 5

PR1001 Payment of annual fee

Payment date: 19980226

Start annual number: 5

End annual number: 5

LAPS Lapse due to unpaid annual fee
PC1903 Unpaid annual fee