KR100225744B1 - 동적연쇄화조작동안레이스상태를막는방법및장치 - Google Patents

동적연쇄화조작동안레이스상태를막는방법및장치 Download PDF

Info

Publication number
KR100225744B1
KR100225744B1 KR1019920022716A KR920022716A KR100225744B1 KR 100225744 B1 KR100225744 B1 KR 100225744B1 KR 1019920022716 A KR1019920022716 A KR 1019920022716A KR 920022716 A KR920022716 A KR 920022716A KR 100225744 B1 KR100225744 B1 KR 100225744B1
Authority
KR
South Korea
Prior art keywords
ccb
chain
bit
ccbs
dma controller
Prior art date
Application number
KR1019920022716A
Other languages
English (en)
Other versions
KR930014073A (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 KR930014073A publication Critical patent/KR930014073A/ko
Application granted granted Critical
Publication of KR100225744B1 publication Critical patent/KR100225744B1/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/10Program control for peripheral devices
    • G06F13/12Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
    • G06F13/124Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine
    • G06F13/126Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine and has means for transferring I/O instructions and statuses between control unit and main processor
    • 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)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Bus Control (AREA)

Abstract

본 발명의 시스템에서, DMA 제어기의 물리적 제한에 의해 부과된 제한은 외부 메모리에 채널제어블럭을 기억시킴으로써 극복된다. DMA 제어기는 현재의 채널제어블럭내의 소정비트가 세트될 때 외부 메모리의 특정번지를 참조하도록 프로그램된다. 그후 DMA 제어기는 메모리의 그 영역상에서 메모리 판독조작을 수행하여 앞의 채널 제어블럭에 의해 먼저 이용된 위치에 검색된 채널제어블럭을 기억시킨다. 이 과정은 DMA 조작의 완료시 비트가 리세트될 때까지 계속된다. 동적 연쇄화는 쉽게 수용되고 채널제어블럭은 DMA 액세스동안 동적으로 변경되어 유연한 입/출력 시스템을 제공한다.
더욱이, 레이스 상태를 야기하지 않고 동적 연쇄화를 구현하는 방법 또는 장치가 기술된다. 각각의 채널제어블럭내에 대기비트가 제공되어 이 비트의 세트시, DMA 제어기는 조작을 보류하고 그것에 의하여 레이스 상태에 의한 에러를 야기하지 않고 CCBs의 체인을 갱신할 기회를 제공한다.일단 체인이 수정됐으면, 대기비트는 리세트되고 처리과정은 안전하게 계속된다.

Description

동적 연쇄화 조작동안 레이스 상태를 막는 방법 및 장치
제1도는 본 발명에 따른 바람직한 시스템을 설명한 블럭선도이다.
제2a 및 2b도는 본 발명의 시스템의 2가지 실시예를 나타낸 블럭선도이다.
제3a 및 3b도는 채널의 다양한 연산 파라미터를 명기하는데 사용되는 채널제어블럭 레지스터를 설명한다.
제4a, 4b 및 4c도는 동적 연쇄화 조작동안 레이스 상태를 막는 바람직한 실시예를 설명하는 플로우챠트이다.
[관련출원]
본 특허출원은 본 출원과 같은 날자에 제출된 계류중인 특허출원 (제목 다중채널 DMA 조작(operation)을 지원하는 회로설계개념, 출원번호 07/814,765, 및 다중채널 DMA 조작을 삽입하는 방법 및 장치, 출원번호 07/814,766, DMA 조작을 연쇄화하는 방법 및 장치, 출원번호 07/815,802에 관련되어 있다.
[발명의 배경]
직접 기억장소 액세스(DMA) 기법은 주변장치(입/출력장치)로부터 메모리로 또는 주변장치 사이에 직접적으로 통신하는 방법이다. DMA를 이용하여, 바이트는 CPU가 개입되지 않고 DMA제어기에 의하여 이동된다. DMA 조작을 수행하기 위하여, 버스 (또는 버스들)의 제어를 획득하고, 디바이스를 액세스하고 메모리 조작이 완료되었음을 CPU에게 통지하는 입/출력 또는 DMA 제어기가 입/출력 채널에 제공된다. DMA제어기는 데이타 위치와 데이타 사이즈 같은 다양한 DMA 전송 조작 파라미터를 명기하는데 사용되는 채널 프로그램 또는 채널제어블럭(CCBs)에 따라 동작한다. CCB의 사용은 DMA 채널로의 DMA 파라미터의 좀더 효율적인 기억, 전송 및 실행에 대비하고 입/출력 트랜잭션의 부분이 되는 페이지의 숫자를 제한하지 않는다. DMA 제어기를 DMA 제어기의 주메모리에 위치한 DMA 채널제어 파라미터의 소정 갯수의 연쇄적인 블럭에 대한 포인터를 포함한 데이타 체인 레지스터로 간주되는 추가 레지스터를 구비한다. DMA 파라미터 블럭내의 플랙은 다음 블럭이 연쇄적으로 이어지는지 여부를 표시한다. 그러나, 함께 연쇄화될 수 있는 채널제어블럭의 숫자는 채널제어블럭의 기억을 위해 DMA 제어기 칩상에 할당된 메모리의 양에 의해 제한되어 대개 두 세개의 채널제어블럭을 기억하기에 충분할 뿐이다.
연쇄화를 제공하는 다른 방법은 DMA 제어기에 메모리와 메모리에 기억된 마이크로 코드를 실행시키는 프로세서를 갖추는 것이다. 이 방법을 채택한 시스템(IBM에 의하여 제조된 IBM 7090, 7080 및 시스템 360 같은)에서, 입력/ 출력(I/O) 트랜잭션은 시작 I/O(SIO) 명령을 발(發)함으로써 시작된다. 명령은 입/출력장치를 작동시키는 채널 프로그램을 가리키는 유효번지를 제공한다. 그후에 채널 프로그램은 SIO 유효번지에 시작하는 메모리로부터 인출된다. 채널 프로그램은 2종류의 정보(데이타 블럭과 채널명령)를 전송한다. 채널명령은 정지명령과 점프명령을 포함한다. 정지명령은 입/출력 트랜잭션을 완료하고 점프명령은 실행되는 채널 프로그램의 다음 명령의 번지를 변경한다.
좀더 강력하고 유연한 제어기를 제공하기 위하여, 동적 연쇄화 기술이 개발되었다. 동적 연쇄화 기술은 채널 프로그램에 I/O 명령어의 진행중 연쇄화를 허락한다. 동적 연쇄화를 이루기 위하여, 채널 프로그램의 마지막 명령(정지명렁)전에 점프 명령을 삽입함으로써 채널 프로그램에 추가부분이 생성된다. 점프명령은 체인에 추가되는 입/출력 명령어를 포함하는 메모리내의 다른 위치를 가르킨다. 이 기술이 명령을 동적으로 연쇄화할 수 있음에도 불구하고, 변화점에 이르는 코드 실행전에 마이크로 코드의변화가 기록되는 것을 보장하기가 어렵기 때문에 레이스(Race)상태가 발생한다.
[발명의 요약]
그러므로, 본 발명의 목적은 채널제어블럭이 외부 메모리에 기억되는 직접 기억장소 액세스 시스템을 제공하는 것이다.
본 발명의 목적은 외부 메모리에 기억되는 채널제어블럭의 동적 연쇄화를 구현하는 DMA 제어기를 제공하는 것이다. 본 발명의 목적은 레이스 상태의 발생을 막는 동적 연쇄화를 구현하는 DMA 제어기를 제공하는 것이다.
본 발명의 시스템에서, 동적 연쇄화를 구현하는 새로운 방법이 제공되어, 좀 더 신뢰성있는 작동과, 이전 방법들의 제한 및 조건의 해제를 제공한다. DMA 제어기의 물리적인 제한에 의해 야기된 제한은 외부 메모리에 채널제어블럭을 기억시킴으로써 극복된다. DMA 제어기는 현재의 채널제어블럭의 소정비트가 세트될 때 외부 메모리의 특정번지를 인용하도록 프로그램된다. DMA 제어기는 외부 메모리의 그 번지에서 체널제어블럭을 검색하고 그 영역의 메모리상에서 메모리 조작을 수행하여 검색된 채널제어블럭을 이전의 채널제어블럭에 의해 이미 이용된 위채에 기억시킨다. 이 처리과정은 DMA 조작이 완료될 때 리세트 비트를 가지는 채널제어블럭에 이를 때까지 계속된다. 그러므로, 본 발명의 시스템에서, 동적연쇄화는 쉽게 수용되어서 채널제어블럭은 DMA 액세스동안 동적으로 변화할 수 있으므로 외부 메모리의 갱신만으로 간단하게 유연한 입/출력 시스템을 제공할 수 있다.
더욱이, 동적 연쇄화 기법은 빈번히 발생하는 레이스 상태를 막기 위해 제공된다. 각 채널/제어블럭은 추가적인 상태비트(대기비트로 간주되는)를 가진다. 대기비트가 세트될 때, 현재의 CCB의 전송은 완료되고 시스템은 조작을 보류하고 대기비트가 리세트될 때까지 대기한다. 이것은 체인에 CCB를 추가할 시간이 충분하도록 해준다. 일단 CCB가 추가되었으면, 대기비트가 리세트되어 정규처리과정이 이어진다. 보류상태비트가 제어상태레지스터(CSR)내에 위치한 채널조작레지스터(COR)에 추가로 제공된다. 보류비트가 세트될 때, 현재의 CCB의 대기비트의 상태에 관계없이 현재의 CCB의 실행은 보류된다. 일단 보류비트가 리세트되면, 정규처리과정이 이어진다.
[발명의 상세한 설명]
다음의 설명에서, 특정 기억장치, 시스템 구조, 설계개념 등이 본 발명의 철저한 이해를 돕기위해 밝혀진다. 그러나 당해분야의 전문가는 이러한 세부사항없이도 본 발명을 실행시킬 수 있다는 것은 명백하다. 다른 경우에는, 본 발명을 필요없이 모호하게 하지 않기 위하여 종래의 회로와 시스템은 블럭선도로 도시된다.
제1도는 본 발명에 따라 동작하는 전형적인 시스템을 도시한다. 버스(10)는 메인메모리(15), CPU(20) 및 입/출력장치(25와 30)를 포함하는 다수의 장치를 상호접속한다. 입/출력제어기(35,40)는 실제의 장치(25,30)로의 입력 및 출력의 제어뿐만아니라 버스(10)로의 인터페이스도 제공한다. 또한 입/출력제어기(45)는 추가 메모리 (50,55)와 입/출력장치(60, 65)가 접속된 제2버스(12)에 접속된다. 본 발명의 시스템에서, 입/출력제어기(35,40,45)는 DMA 조작을 수행할 수 있는 지능을 갖추고 있다. DMA 조작을 수행하라는 요구에 응답하여, 입/출력제어기는 조작채널의 조작 파라미터를 명기하는데 사용된 채널제어블럭을 액세스하는 소정번지에서 자체의 내부메모리내에 할당된 공간을 액세스한다. 일단 파라미터가 액세스되면, 입/출력제어기는 공급된 피라미터에 따라 직접 기억장소 액세스 조작을 수행하기 위하여 준비한다. 직접 기억장소 액세스에 대한 정보를 좀더 얻기 위해서는 컴퓨터 아키텍터 및 설계, 저자 : A.J. 반 드 구어(에디슨-웨슬리 출판사, 1989), p317~p321를 참조하라.
제2a도를 참조하면, 본 발명에서, 외부기억 또는 메모리 장치(메모리(110)같은)에 기억된 채널제어블럭을 명기하고 액세스 가능한 수단이 입/출력제어기(100) 내에 제공된다. CCBs의 체인의 실행중에, 입/출력제어기(100)는 외부 기억장치(105)를 액세스하여 채널제어블럭을 검색하고 채널제어블럭(120)(본 바람직한 실시예에서 제어 상태 레지스터(CSR)(125)내에 위치한)에 할당된 위치에서 입/출력 제어기(100)의 메모리에 기억시킨다. 그후에, DMA 조작은 채널제어블럭 파라미터에 따라 행해진다. 일단 조작이 완료되면, 입/출력제어기(100)는 다음 채널제어블럭을 검색하여, 하나가 존재한다면 CSR(125)내의 CCB위치(120)에 기억시키고 모든 채널제어블럭이 처리완료될때까지 이 방법으로 계속처리한다. 그래서, 다수의 채널제어블럭이 외부 기억장치에 저장되어 DMA 조작의 실행중에 검색될 수 있으므로 CCB(120)에 할당된 소량의 메모리에 의한 입/출력제어기(100)상의 제한을 초월하고 CPU 개입없이 다중 DMA 조작을 수행하는 수단을 제공함으로써 중요한 처리과정시의 잇점을 얻는다.
추가적인 상태비트가 각 CCB에 제공된다. 입/출력제어기 로직(130)은 추가적인 상태비트를 검사하고 비트가 세트/리세트된다면 소정기능을 수행하도록 수정된다. 이러한 추가적인 비트는 체인비트를 포함한다. 체인비트는 체인의 다음 차례의 채널제어블럭을 검색하기 위하여 제어기 로직(130)이 외부 메모리로 판독연산을 수행한다면 세트된다. 검색된 CCB는 DMA 제어기에 방금 실행된 CCB위에 중복기록되며 CCB의 소정위치에서 입/출력제어기 메모리내로 기록된다. 제어기는 검색되어 제어기 메모리의 CCB 레지스터로 기록된 CCB에 의하여 명기된 조작을 수행한다.
제어기 로직은 제어기내에 위치한 (바람직하게는 칩제어상태블럭(140)에 위치한) 외부 메모리 번지 포인터가 가리키는 번지에서 외부 메모리로 판독을 수행한다. 바람직하게는 외부 메모리 번지 포인터는 외부기억장소에 위치한 제1CCB를 가리키는 하드코드값이다. CCB 카운터 레지스터(160)는 채널에서 실행된 체인내의 CCB의 총 갯수를 유지한다. CCB는 크기가 고정됐으므로, 검색되는 CCB의 위치는 실행된 CCB의 갯수와 메모리 번지 포인터에 따라 결정될 수 있다. 택일적으로, 외부 메모리 번지 포인터는 CRS의 레지스터에 위치하고 외부 메모리에 위치한 다음 CCB의 번지를 반영하기 위해 증가될 수 있다.
외부 메모리로부터 채널제어블럭을 검색할 후, 제어기 로직은 CRS 블럭의 레지스터에 위치한 현재의 채널제어블럭위에 중복기록한다. CCB의 체인비트가 세트되면, CCB 카운트 레지스터, 또는 택일적으로, 외부 메모리 번지 포인터가 증가하여 다음 채널제어블럭을 가리킨다. CCB가 고정된 크기를 가지므로, 다음 CCB의 번지는 CCB 크기를 CCB의 갯수에 곱하여 제1외부위치 CCB에 더함으로써 쉽게 결정할 수 있다. 유사하게, 제2실시예에서, 외부 메모리 번지 포인터는 고정량만큼 제어기 로직에 의해 갱신된다.
외부 CCB는 내부블럭이 위치한 동일번지에서 내부메모리내로 로드된다. 그결과로서, 초기 CCB위에 중복기록된다. 그러므로, DMA 조작의 체인순서의 끝에서, 제어기 로직(130)은 외부 메모리의 초기번지로 포인터 또는 카운터를 리세트하고 CSR 블럭의 CCB 레지스터로 초기채널제어블럭을 재기억시킨다. 바람직하게는 초기채널제어블럭의 사본이 채널제어수 및 채널수(다중채널시스템인 경우)에 따라 식별된 소정번지에서 외부 메모리에 저장된다. 초기채널제어블럭은 DMA 조작의 체인순서의 끝, 또는 택일적으로, 개시되는 DMA 조작의 다음 순서의 시작에서 CSR에 재기억될 수 있다.
제2실시예 제2b도에 도시된다. 처리능력을 좀더 증가시키기 위하여, 제어기(200)의 내부 메모리는 약간 증가되어 제1(220) 및 제2(222) 채널제어블럭을 수용한다. 추가로, 칩제어상태비트(240)는 확장되어 현재의 채널제어블럭을 가리키는 비트를 포함한다. 이 방법으로, 이중 버퍼링이 수행될 수 있다. 이중 버퍼링은 다음의 방법으로 수행된다. 제2b도를 참조하면, 제1채널제어블럭이 CCB1, 220(제1채널제어블럭버퍼)에 위치한다. 칩제어상태비트는 현재의 채널제어블럭이 CCB1, 220에 위치한다는 것을 가리킨다. 제어기 로직(230)이 CCB1, (220)에 위치한 채널제어블럭에 따라 처리하고 있는 동안, CCB 내의 체인비트가 검출되고 메모리/판독조작이 실행되어 외부 메모리(210)로부터 다음 채널제어블럭을 검색할 수 있다. 그후 다음 CCB는 CCB2(222)에 기억되고 칩제어상태비트(240)는 CCB1(220)에 위치한 채널제어블럭에 관한 처리과정의 끝에서 갱신되거나 토글되어, 현재의 채널제어블럭이 CCB2(222)에 위치한 것을 반영한다. 그러므로, CCB1(220)에 기억된 채널제어에 관한 처리과정의 끝에서, 제어기 로직은 CCB2(222)에 위치한 채널제어블럭에 따라 처리과정을 즉시 시작할 수 있다. 제어기 로직(230)이 CCB2(222)내의 제어블럭에 따라 처리하고 있는동안, CCB1(220)의 내용은 외부 메모리(210)로부터 검색된 다음 채널제어블럭으로 갱신될 수 있다. 그러므로, 외부 메모리부터 채널제어블럭을 검색하는 메모리 판독조작을 수행하는데 필요한 시간은 잇따른 전송의 개시를 지연시키지않고, 그래서 전체 전송율을 증가시킨다.
각 입/출력제어기는 DMA 조작을 수행하는 제어기(제어기 로직)의 고정배선로직에 의한 것으로 간주되는 정보뿐만아니라 제어기의 조작상태에 관한 정보를 포함하는 제어/상태 레지스터(CSR)를 포함한다. CSR 블럭내에서, 다수의 채널제어블럭(CCBs)이 위치하고, 각각의 입/출력채널당 하나씩 CCB가 제공된다.
채널제어블럭의 예가 제3a도에 도시된다. 제1워드는 수신지인식카운터(DAC), 소스인식카운터(SAC), 전송카운트(TC), 소스번지자동 증가/감소 레지스터(SINC) 및 수신지번지 자동 증가/감소 레지스터를 포함한다. 소스 및 수신지 인식 카운터는 인식선이 부족한 장치의 프로그램 가능한 대기-상태명세에 이용된다. 전송 카운트 레지스터는 조작동안 전송되는 바이트의 갯수를 명기한다. SINC 및 DINC 레지스터는 데이타 블럭의 전송같은 소정조작동안 번지를 자동 증가/감소시키는 값을 기억한다.
제1의 32비트는 데이타가 전송되어오는 번지를 식별하는 DMA 소스번지를 포함하고 제2의 32비트는 데이타가 전송되는 번지를 식별하는 수신지번지를 포함한다. 다음의 64비트는 채널제어레지스터(CCR) 및 슬레이브 버스트 능력 레지스터를 포함한다. 아래에 논의되는 바와 같이, CCR은 채널의 다양한 조작 파라미터에 대한 비트를 포함한다. SBSDB는 전송을 요구한 특정 슬레이브 장치에 어떤 버스트 사이즈가 지원되는지를 명기한다.
초기화/체인/대기 레지스터(ICW)는 CCB가 외부 메모리에 위치하여 검색되고 실행된다는 것을 가리키는 체인비트(세트시)를 포함하는 조작을 수행하는 제어비트를 포함한다. 레지스터는 또한 초기화 상태비트를 포함한다. 이 비트가 세트될 때, CSR 내의 현재 로드된 CCB는 초기 CCB이고 실행을 준비하고 있다. 초기화된 비트가 세트되지 않는다면, 초기 CCB는 CSR 내에 현재 로드되지 않고 DMA 처리과정이 재-개시될 수 있기전에, 초기 CCB는 CSR의 CCB 레지스터내로 로드되어야만 한다.
ICW 레지스터는 또한 대기비트를 포함하는데, 이 비트는 이후에 설명되겠지만, 세트시, 레이스 상태에 의한 에러를 야기하지 않고 CCBs의 체인을 동적으로 구성하기 위하여 CCB 조작의 실행을 보류한다.
오토-암(auto-arm) 카운터(AAC)는 오트-암 모드에서 사용되어 CCB의 반복 횟수를 명기한다. 채널삽입사이즈레지스터(CHILS)는 다른 채널의 전송을 허락하기전에 전송되는 바이트의 최대 갯수를 명기한다. 채널제어레지스터는 제3b도에 자세히 밝혀진다. 채널제어상태비트는 아래와 같이 명기된다:
(Mo1, Mo0-동작모드)
00-단일전송
01-오토-암
1x-자동-실행
(DXt-DMA 전송유형)
0-제어기는 버스상의 DMA 매스터
1-제어기는 버스상의 DMA 슬레이브
(Sih-매번전송후 소스번지 자동 증가/유지)
0-전송사이즈에 기초하여 매번전송후 소스번지증가
1-소스번지상수유지
(Dih-매번전송후 수신지번지 자동 증가/유지)
0-전송사이즈에 기초하여 매번전송후 수신지번지증가
1-수신지번지상수유지
(Sec-데이타 버스 엔디안(endian) 전환(소스))
0-BIG-엔디안
1-LITTLE-엔디안
(Dec-데이타 버스 엔디안 전환(수신지))
0-BIG-엔디안
1-LITTLE-엔디안
(Sa0-소스번지오버라이드(분산))
0-번지 오버라이드가 없음(정상모드)
1-현재의 소스 베이스 번지를 다음 CCB에 사용
(Da0-수신지번지오버라이드(수집))
0-번지오버라이드가 없음(정상모드)
1-현재의 수신지 베이스 번지를 다음 CCB에 사용
(Sai-SIN 레지스터에 기억된 값을 사용하여 완전 CCB를 매번 전송한 후 소스번지를 자동 증가/감소)
0-자동 증/감 불가능
1-자동 증/감 가능
(Dai-DINC 레지스터에 기억된 값을 사용하여 완전 CCB를 매번 전송한 후 수신지 번지를 자동 증가/감소)
0-자동 증/감 불가능
1-자동 증/감 가능
(Sb1, Sb0-소스버스선택)
00-버스 1, 비-64 비트
01-버스 1, 64 비트
10-버스 2 유형 1
11-버스 2 유형 2
(Db1, Db0-수신지버스선택)
00-버스 1, 비-64 비트
01-버스 1, 64 비트
10-버스 2 유형 1
11-버스 2 유형 2
(SSync-소스에 대한 동기 또는 비동기 전송의 선택)
0-동기
1-비동기
(SMU-소스에 대한 다중화 또는 비-다중화 모드의 선택)
0-비-다중화
1-다중화
(SPs1, SPs0-유형 2 장치를 위한 소스 포트(port)사이즈(ACK가 무시될 때는 유형 1 장치))
00-64비트
01-32비트
10-16비트
11-8비트
(DSync-수신지에 대한 동기 또는 비동기 전송의 선택)
0-동기
1-비동기
(DMu-수신지에 대한 다중화 또는 비-다중화 모드의 선택)
0-비-다중화
1-다중화
(DPs1, DPs0-유형 2 장치를 위한 수신지 포트사이즈(ACK가 무시될 때는 유형 1 장치))
00-64비트
01-32비트
10-16비트
11-8비트
(Sack1, Sack0-소스인식유형제어)
유형 2 장치에 대하여는 이 비트들은 무시되고 모드(01)가 언제나 사용된다. 이것은*ACK 라인이 유형 2 장치에는 사용되지 않기 때문이다.
00-*ACK 라인만을 관측.
01-CCB의 SAC 레지스터의 값만을 사용;*ACK 라인은 무시.
10-CCB의 SAC 레지스터의 값을 사용, 그후*ACK 라인을 관측.
11-*ACK 라인을 관측, 그후 SAC 레지스터의 값을 사용.
(Dack1, Dack0-수신지 인식유형제어)
유형 2 장치에 대하여는 이 비트들은 무시되고 모드(01)가 언제나 사용됨.
00-*ACK 라인만을 관측.
01-CCB의 DAC 레지스터의 값만을 사용;*ACK 라인은 무시.
10-CCB의 DAC 레지스터의 값을 사용, 그후*ACK 라인을 관측.
11-*ACK 라인을 관측, 그후 DAC 레지스터의 값을 사용.
동적 연쇄화는 처리과정동안 CCB의 체인을 수정할 수 있는 융통성을 제공한다. 예를 들어, CCB를 추가하기 위하여, 체인내의 마지막 CCB의 체인비트가 세트되고 추가되는 CCB는 CCB 후의 다음 순서의 메모리 번지로 기록된다. 그러나, 레이스 상태는 CCB의 체인이 동적으로 수정될 때 발생할 수 있다. 예를 들어, 이러한 레이스 상태는 CCB가 CCBs의 체인으로 동적으로 추가되는 동안 외부 메모리로부터 CCB가 액세스될 때 발생할 수 있다. 또한 레이스 상태는 CCB가 동적으로 추가될 수 있기전에 체인내의 마지막 CCB에 이를 발생할 수 있다.
동적으로 연쇄화할 때 레이스 상태의 발생을 피하기 위하여 혁신적인 방법 및 장치가 개발되었다. 당해분야의 전문가에게는 다음의 설명으로 명백해지겠지만, 레이스 상태를 방지하는 본 발명의 장치 및 방법은 임의의 동적 연쇄화 장치와 함께 사용될 수 있다. 그러나, 여기에 설명된 외부 메모리를 사용한 동적 연쇄화 장치 및 방법과 함께 사용되는 것이 바람직하다.
레이스 상태를 방지하기 위하여, 동적 연쇄화 조작이 완료될 때까지 CCBs의 체인의 진행을 보류하는 것이 필요하다. 대기비트가 각 채널제어블럭에 제공된다. 대기비트가 검출되면, 제어기 로직은 현재의 채널제어블럭의 조작의 실행을 완료하나, 대기비트가 리세트될 때까지 다음 DMA 조작의 실행을 보류한다. 이것은 레이스 상태에 따른 에러를 유발하지 않으며 DMA 조작을 수정하기 위하여 현재의 체인으로 채널제어블럭을 동적으로 추가/수정할 기회를 제공한다. 채널제어블럭의 체인내의 특정위치에서 채널제어블럭을 삽입 또는 제거하거나 추가적인 DMA 조작을 연쇄화하는 것이 바람직하다면, CPU는 추가되거나 제거되는 블럭 앞에 위치한 채널제어블럭에 대기비트가 세트되게 한다. 그후에 채널제어블럭의 추가 또는 삭제가 수행되고 대기비트가 리세트되며, 그시간에 제어기 로직은 채널제어블럭에 의해 명기된 DMA 조작처리를 계속할 수 있다.
상기에 지적된 바와 같이, 바람직한 실시예에서, 대기비트는 채널제어블럭의 ISW레지스터에 위치한다. 더욱이, 추가적인 상태비트(보류비트)는 CSR(125, 제2도) (바람직하게는 채널조작레지스터(COR)(150, 제2도)내에 제공되는 것이 바람직하다. 이 비트의 세팅은 특정 CCB를 참조하지 않고 조작을 일시 중시한다. 보류비트는 각 CCB에 위치한 대기비트와 함께 혹은 제외하고 사용될 수 있다. 다중-채널제어기에서, 다수의 보류비트가 각 채널당 하나씩 제공되어, 채널조작의 전부 또는 일부를 일시 중지하는 단순한 기술을 제공한다. 보류비트가 리세트되면, 조작은 이어질 수 있다.
제4a도의 플로우챠트로 도시된 동적 연쇄화의 예는 CCBs의 체인의 끝에 DMA 조작을 추가한 것이다. 이렇게 하기 위하여, CPU(또는 입/출력제어기를 프로그램할 능력을 가진 다른 장치)는 외부 메모리를 액세스하고, 이전에 세트되지 않았으면, 외부 메모리에 위치한 체인내의 마지막 CCB의 대기비트를 세트한다(단계 300). 대기비트는 동적 연쇄화가 발생할 것 같으면 미리 세트될 수 있다. 대기세트를 미리 세트함으로써, 추가적인 CCB의 동적 연쇄화 앞의 위치를 지나쳐가는 위험이 없어진다. 마지막 채널제어블럭이 입/출력제어기의 CSR에 현재 위치하고 있다면(단계 310), 그리고 체인의 DMA 조작이 완료되면(단계 320), 동적 연쇄화 조작은 수행될 수 없고 개별체인으로서 CCB를 실행시키는 것과 같은 다른 처리과정이 수행된다. 처리과정은 제어기 로직이 세트된 대기비트를 검출하여 조작이 일시 중지될 때까지 계속된다. 그후에 CPU는 외부 메모리의 마지막 채널제어블럭 바로뒤의 메모리 위치에 새로운 채널제어블럭을 기록한다 (단계 340). 바람직하게는 새로운 CCB의 대기비트와 체인은 추가적인 CCB가 추가될 수 있는 것처럼 미리 세트된다.
기록조작이 완료된 후, 대기비트는 외부 메모리 및 CSR(조작보류시)양쪽에 위치한 CCB 내에 리세트되고(단계 350), 그것에 의하여 처리과정은 재개되고(단계 370), 동적 연쇄화는 달성된다. 대기비트를 제일 먼저 세트함으로써, 레이스 상태(오버런)의 가능성은 제어기 로직이 세트된 대기비트를 가진 채널제어블럭을 넘어서 진행하지 않으므로 제거된다. 더욱이 제어기 로직은 세트된 대기비트를 가진 채널제어블럭의 끝까지 계속 처리할 수 있으므로, 동적 연쇄화동안 프로세싱 오버헤드를 최소화하여 높은 처리능력을 유지한다.
하나의 CCB가 또한 현재 명기된 CCBs의 체인내에 추가될 수 있다. 다음의 설명(제4b도에 밝혀진 것처럼)은 회귀체인(즉 체인의 완료후 체인의 상단으로 재순환하는 체인)에서의 처리과정을 기술한다. 본 발명의 처리과정은 회귀체인에 제한되지 않고, 처리과정은 비회귀체인에 동등하게 적용될 수 있다. 제4b도를 참조하면, 추가되는 CCB 위치 바로전의 체인에 위치한 CCB의 대기비트가 세트된다(단계 410). 단계 415에서, 현재 처리중인 CCB의 위치는 CCB가 추가되는 위치와 비교된다. 현재 처리중인 CCB가 체인내에서 낮으면, 시스템은 메모리내로 새로운 CCBs를 기록하기전에 체인의 상단으로 조작이 들아올 때까지 대기한다. 현재 처리중인 CCB는 CCB가 추가되는 체인내의 위치보다 위에 있으며, 시스템이 세트된 대기비트를 검출함과 동시에 처리를 보류하므로 CCB는 즉시 추가될 수 있다. 그 후 외부 메모리는 갱신되어 새로운 CCB를 추가한다(단계 420). 세트된 대기비트를 가진 CCB 바로뒤의 메모리 번지에 새로운 CCB를 기록하고 남은 CCBs를 CCB의 크기만큼씩 증가시킨 구번지에 대응하는 새로운 번지위치에 차례로 재기록한다(단계 425). 택일적으로, 외부 1B메모리는 다음 메모리 번지의 CCB를 기록하고 새로운 CCB가 소망 순서로 실행되도록 포인터 메카니즘을 그 번지에 제공함으로써 갱신될 수 있다. 일단 체인이 갱신되면, 외부 대기비트는 리세트된다(단계 430). 내부 대기비트가 리세트되고 (단계440), 그후 처리과정은 이어진다(단계 450).
동적 연쇄화 조작의 다른예(제4b도에 플로우차트로 도시된)는 CCBs의 활성체인으로부터 CCB를 제거하는 것이다. 제4b도는 CCBs의 회귀체인으로부터 CCB를 제거하는 과정을 도시한다. 하나 이상의 CCB를 제거하는 것을 제거되는 CCB의 바로앞의 외부 CCB 내의 대기 비트를 제일 먼저 세트함으로써 이루어진다(단계 510). 단계(515)에서, 시스템은 현재 처리중인 CCB의 위치에 관련하여 제거되는 CCB의 체인내의 위치를 결정한다. 필요하다면, 시스템은 CCB 처리과정이 높을 때, 즉 제거되는 CCB의 위치보다 앞에 있을 때까지 대기한다. 그후 CCB는 외부 메모리로부터 제거된다(단계 520). 외부 메모리는 제거된 CCB의 바로다음 CCB의 번지를 가리키는 포인터 메카니즘을 포함하여 CCBs의 체인이 단절되지 않게 된다. 교대로, 단계 525,제거된 것 다음의 CCB는 인접 메모리 번지의 외부 메모리로 재기록된다. CCB의 체인이 갱신된 후, 외부 메모리에 위치한 CCB 내의 대기비트가 제일 먼저 세트되고(단계 530), CSR의 CCB 내의 대기비트가 리세트되어(단계 540), 처리과정이 이어진다(단계 550).
본 발명이 바람직한 실시예에 관련하여 기술되었지만, 전술한 설명에 비추어 당해 분야의 전문가에게는 수많은 수정, 변경, 실시예 및 용도가 있을 수 있다는 것은 명백하다. 특히, 상기에 기술된 개념(동적 연쇄화 조작시 외부채널제어블럭의 투명한 연쇄화 및 레이스 상태의 방지)은 바람직하게는 서로 함께 사용되지만 또한 서로 독립하여 사용될 수 있고 역시 상기에 기술된 목적과 개선을 달성할 수 있다는 점을 인식할 수 있을 것이다.

Claims (12)

  1. CPU, 메모리 및 입/출력기억장치로 구성되는 컴퓨터 시스템에서 입/출력장치로 수행되는 직접 기억장소 액세스 조작을 동적으로 연쇄화하는 장치에 있어서, 상기 장치는; DMA 조작을 수행하는 직접 기억장소 액세스(DMA)제어기; 제1CCB 다음에 처리되는 하나 이상의 다음 CCB를 포함하는 DMA 제어기 외부의 입/출력기억장치; 및 DMA제어기에 연결되어 수행되는 DMA 조작에 관한 상태를 제공하는 칩제어상태로 구성되며, 상기 DMA 제어기는 DMA 제어기에 의해 액세스되는 하나 이상의 채널제어블럭레지스터 및 제어기 로직으로구성되고, 상기 채널제어블럭레지스터는 DMA 제어기에 의해 수행되는 조작을 명기하는 DMA 전송 파라미터를 식별하는 채널제어블럭 (CCB)으로 구성되며, 상기 DMA 제어기 로직은 CCB에 따라 조작을 수행하고, 상기 CCB는 대기상태비트를 포함하고, 상기 대기상태비트는 대기비트가 리세트될 때까지 처리를 보류하도록 DMA 제어기 로직에 지시하고, 상기 칩제어상태는 처리되는 다음 CCB의 DMA 제어기 외부의 입/출력기억장치내의 번지를 식별하는 외부 메모리 번지 포인터로 구성되고, 상기 외부 메모리 번지 포인터는 입/출력기억장치내의 CCB의 액세스후 매번 증가되어 처리되는 CCBs의 체인내의 다음 CCB를 가르키고, 상기 대기비트가 세트되지 않으면, 상기 DMA제어기는 외부 메모리 번지 포인터에 의해 명기된 번지에서 외부 입/출력기억장치를 판독하고, CCB 레지스터내에 판독된 CCB를 기억시키고, CCB를 처리하여 CCB 레지스터내에 위치한 CCB에 따라 조작을 수행하고, 외부 프로세서는 CCBs의 체인으로부터 추가 및 /또는 제거되는 CCB의 앞에 위치하는 CCB 내의 대기비트를 세트 및 리세트하고, 상기 외부 프로세서는 대기비트를 세트하고, 최소한 하나의 CCB를 추가 및/또는 제거하고, 대기비트를 리세트하고, 수정된 CCBs의 체인내의 처리과정이 이어지게 함으로써 CCBs의 체인을 동적으로 수정할 수 있고, 그것에 의하여 DMA 제어기는 DMA 제어기내의 요구된 메모리량의 증가 및 레이스 상태에 의한 에러를 야기하지 않고 CCBs 체인을 수정함으로써 조작의 체인을 동적으로 수정할 수 있는 것을 특징으로 하는 동적 연쇄화 장치.
  2. 제1항에 있어서, 상기 입/출력제어기는 또한 보류상태비트를 포함하고, 상기 보류상태비트는, 세트시, CCB 레지스터에 현재 기억된 CCB에 의해 명기된 조작이 완료된 후 CCB에 의해 명기된 조작의 수행을 보류하여 보류상태비트가 레이스 상태를 야기하지 않으며 세트되어 있는 동안 CCBs 체인이 수정될 수 있는 것을 특징으로 동적 연쇄화 장치.
  3. 제2항에 있어서, 상기 DMA 제어기는 다중채널의 DMA 조작을 수행하고 보류상태 비트는 각 채널에 하나씩 제공되어, 하나 이상의 채널이 CCBs 체인을 동적으로 수정하도록 보류될 수 있는 것을 특징으로 하는 동적 연쇄화 장치.
  4. 입/출력기억장치에 관련된 DMA 조작을 수행하는 직접 기억장소 액세스(DMA)제어기, 입/출력기억장치, 메모리, 및 CPU로 구성된 컴퓨터 시스템에서 입/출력기억장치로의 직접 기억장소 액세스 조작의 체인을 수행하고 조작의 체인을 동적으로 수정하는 방법에 있어서, 상기 방법은 : DMA 제어기내에 하나 이상의 채널제어블럭을 제공하는 단계; 처리되는 다음 CCB의 DMA 제어기 외부의 입/출력기억장치내의 번지를 식별하는 단계; 상기 DMA 제어기가 CCB 레지스터에 위치한 CCB에 의해 명기된 조작을 수행하는 단계; 조작수행완료와 동시에 상기 대기비트가 세트되지 않으면, 식별된 번지에서 외부 입/출력기억장치로부터 다음 CCB를 검색하는 단계; 다음 CCB를 CCB 레지스터에 기억시키는 단계; CCB 레지스터에 위치한 다음 CCB를 처리하고, 처리되는 그다음 CCB의 DMA 제어기 외부의 입/출력기억장치내의 번지를 식별하는 단계; 조작수행완료와 동시에 상기 대기비트가 세트되면, 처리를 보류하고, 대기비트가 리세트되는 때를 결정하고, 대기비트가 리세트되는 동안 CCBs 체인을 수정하고, CCBs 체인이 수정된 후 대기비트를 리세트하고, 그리고 대기비트가 리세트될 때 처리를 재개하는 단계로 구성되며, 상기 CCB 레지스터는 DMA 제어기에 의해 수행되는 조작을 명기하며 DMA 제어기에 의해 처리되는 DMA 전송 파라미터를 식별하는 CCB를 포함하고, 상기 CCB는 대기 비트를 포함하는 것을 특징으로 하는 방법.
  5. 제4항에 있어서, 상기 방법은 또한 CCBs의 체인으로 CCB를 추가하는 단계를 포함하고, 상기 추가단계는; 추가되는 CCB의 위치 바로앞에 외부 메모리내의 CCB의 체인비트를 세트하는 단계; 세트된 대기비트를 가진 CCB 바로뒤의 입/출력기억위치에서 CCBs의 체인으로 CCB를 추가하는 단계; 및 추가되는 CCB의 바로앞에 위치한 CCB의 대기비트를 리세트하는 단계로 구성되며, 그것에 의하여 CCB는 레이스 상태에 의한 에러를 야기하지 않고 처리되는 CCBs의 체인으로 동적으로 추가되는 것을 특징으로 하는 방법.
  6. 제5항에 있어서, 대기비트가 세트된 시간에 CCB 레지스터내에 기억된 CCB가 추가되는 CCB의 바로앞에 위치한 CCB라면, 상기 방법은 또한 : CCB 레지스터에 기억된 CCB 내의 대기비트를 세트하여 CCB 레지스터내의 CCB에 의해 명기된 조작이 완료된 후 처리가 보류되는 단계; CCBs의 체인이 수정되고 추가되는 CCB의 바로앞에 위치한 CCB의 대기비트가 리세트된 후, CCB 레지스터에 위치한 CCB의 대기비트를 리세트하는 단계로 구성된 것을 특징으로 하는 방법.
  7. 제4항에 있어서, DMA 제어기가 CCB를 처리하는동안 체인으로부터 CCB를 제거함으로써 CCBs의 체인을 동적으로 수정하는 방법으로 또한 구성되며, 상기 방법은 : 제거되는 CCB의 바로앞에 위치한 CCB의 대기비트를 세트하는 단계; CCB를 제거하는 단계; 제거된 CCB가 체인의 마지막 CCB가 아니라면, 제거된 CCB 다음에 위치한 CCB의 번지를 갱신하여 제거된 CCB 다음의 CCB 번지가 제거된 CCB의 바로앞에 위치한 CCB의 바로다음에 이어지도록 하는 단계; 제거된 CCB가 체인의 마지막 CCB라면, 제거된 CCB 바로앞에 위치한 CCB의 체인비트를 리세트하는 단계; 및 제거된 CCB 바로앞에 위치한 CCB의 대기비트를 리세트하는 단계로 구성되며, 상기 방법에 의하여 CCB는 CCBs의 체인으로부터 동적으로 제거되는 것을 특징으로 하는 방법.
  8. 제1항에 있어서, DMA 제어기내의 보류상태비트를 제공하는 단계를 포함하며, 상기 보류비트가 세트되고 CCB 레지스터에 위치한 CCB에 의해 명기된 조작이 완료되면, 보류는 보류비트가 리세트될때까지 처리과정을 진행시키고, CCBs의 체인이 보류비트가 세트된동안 레이스 상태를 야기하지 않고 수정되는 것을 특징으로 하는 방법.
  9. 제8항에 있어서, 대기비트가 세트된 시간에 CCB 레지스터에 기억된 CCB가 추가된 CCB 바로앞에 위치한 CCB라면, 상기 방법은 또한 : CCB 레지스터에 기억된 CCB의 보류비트를 세트하여 CCB 레지스터내의 CCB에 의해 명기된 조작이 완료된 후 처리과정이 보류되는 단계; CCBs의 체인이 수정되고 추가된 CCB 바로앞에 위치한 CCB의 대기비트가 리세트된 후, CCB 레지스터에 위치한 CCB의 보류비트를 리세트하는 단계로 구성되는 것을 특징으로 하는 방법.
  10. 제9항에 있어서, 대기비트가 세트된 시간에 CCB 레지스터에 기억된 CCB가 체인의 마지막 CCB이고 체인은 체인의 끝에 CCB를 추가함으로써 수정된다면, 상기 방법은 또한 : 보류비트를 세트하여 CCB 레지스터내의 CCB에 의해 명기된 조작이 완료된 후 처리과정이 보류되는 단계; 체인내의 마지막 CCB의 체인비트를 세트하는 단계; 체인내의 마지막 CCB 바로 다음 위치에서 CCB를 CCBs의 체인에 추가하는 단계; 보류비트를 리세트하는 단계로 구성되며, 상기 단계들에 의하여 CCB가 CCBs의 체인의 끝에 추가되는 것을 특징으로 하는 방법.
  11. CPU, 메모리 및 입/출력기억장치로 구성되는 컴퓨터 시스템에서 입/출력장치로 수행되는 직접 기억장소 액세스 조작을 동적으로 연쇄화하는 장치에 있어서, 상기 장치는 : DMA 조작을 수행하는 직접 기억장소 액세스(DMA)제어기; 제1CCB다음에 처리되는 하나 이상의 다음 CCB를 포함하는 DMA 제어기 외부의 입/출력기억장치; 및 DMA제어기에 연결되어 수행되는 DMA 조작에 관한 상태를 제공하는 칩제어상태로 구성되며, 상기 DMA 제어기는 DMA 제어기에 의해 액세스되는 하나 이상의 채널제어블럭 레지스터 및 제어기 로직으로 구성되고, 상기 채널제어블럭 레지스터는 DMA제어기에 의해 수행되는 조작을 명기하는 DMA 전송 피라미터를 식별하는 채널제어블럭 (CCB)로 구성되고, 상기 DMA 제어기 로직은 CCB에 따라 조작을 수행하고, 상기 CCB는 체인 상태비트와 대기상태비트로 구성되고, 상기 체인상태비트는 다른 CCB에 의해 명기된 다음 조작의 수행을 DMA 제어기에 로직에 지시하고, 상기 CCB 레지스터는 먼저 제1CCB를 기억하고, 상기 대기상태비트는 대기비트가 리세트될때까지 처리를 보류하도록 DMA 제어기 로직에 지시하고, 상기 칩제어상태는 체인비트의 세트시, 처리되는 다음 CCB의 DMA 제어기 외부의 입/출력기억장치내의 번지를 식별하는 외부 메모리 번지 포인터로 구성되고, 상기 외부 메모리 번지 포인터는 입/출력기억장치내의 CCB로의 액세스후 매번 증가하여 처리되는 CCBs의 체인내의 다음 CCB를 가르키고, 상기 DMA 제어기는 외부 메모리 번지 포인터에 의해 명기된 번지에서 외부 입/출력기억장치를 판독하고, CCB 레지스터에 판독된 CCB를 기억시키고 CCB를 처리하여 CCB 레지스터에 위치한 CCB에 따라 조작을 수행하고; 그리고 외부 프로세서는 CCBs의 체인으로부터 추가 및/또는 제거되는 CCB의 앞에 위치하는 CCB 내의 대기비트를 세트 및 리세트하고, 상기 외부 프로세서는 대기비트를 세트하고, CCB를 추가 및/또는 제거하고, 대기비트를 리세트하여 수정된 CCBs의 체인에 처리과정이 이어지게 함으로써 CCBs의 체인을 동적으로 수정가능하게 하고, DMA 제어기는 DMA 제어기에 요구된 메모리 양의 증가 및 레이스 상태에 의한 에러를 야기하지 않고 CCBs의 체인을 수정함으로써 조작의 체인을 동적으로 수정할 수 있는 것을 특징으로 하는 장치.
  12. 제11항에 있어서, DMA 제어기에 위치한 보류비트를 추가로 포함하고, 상기 보류비트는 세트시, CCB 레지스터에 현재 위치한 조작의 완료후 처리를 보류하는 것을 특징으로 하는 장치.
KR1019920022716A 1991-12-30 1992-11-28 동적연쇄화조작동안레이스상태를막는방법및장치 KR100225744B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/814,864 US5251312A (en) 1991-12-30 1991-12-30 Method and apparatus for the prevention of race conditions during dynamic chaining operations
US814,864 1991-12-30

Publications (2)

Publication Number Publication Date
KR930014073A KR930014073A (ko) 1993-07-22
KR100225744B1 true KR100225744B1 (ko) 1999-10-15

Family

ID=25216200

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019920022716A KR100225744B1 (ko) 1991-12-30 1992-11-28 동적연쇄화조작동안레이스상태를막는방법및장치

Country Status (3)

Country Link
US (1) US5251312A (ko)
JP (1) JP3433385B2 (ko)
KR (1) KR100225744B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220114148A1 (en) * 2018-02-05 2022-04-14 Bank Of America Corporation System and method for decentralized regulation and hierarchical control of blockchain architecture

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5367639A (en) * 1991-12-30 1994-11-22 Sun Microsystems, Inc. Method and apparatus for dynamic chaining of DMA operations without incurring race conditions
EP0549924A1 (en) * 1992-01-03 1993-07-07 International Business Machines Corporation Asynchronous co-processor data mover method and means
JP3187539B2 (ja) * 1992-07-28 2001-07-11 株式会社東芝 データ転送装置
US5659690A (en) * 1992-10-15 1997-08-19 Adaptec, Inc. Programmably configurable host adapter integrated circuit including a RISC processor
DE69435090T2 (de) * 1993-12-01 2009-06-10 Marathon Technologies Corp., Stow Rechnersystem mit Steuereinheiten und Rechnerelementen
US5717952A (en) * 1994-11-16 1998-02-10 Apple Computer, Inc. DMA controller with mechanism for conditional action under control of status register, prespecified parameters, and condition field of channel command
US5687337A (en) * 1995-02-24 1997-11-11 International Business Machines Corporation Mixed-endian computer system
US5928349A (en) * 1995-02-24 1999-07-27 International Business Machines Corporation Mixed-endian computing environment for a conventional bi-endian computer system
DE69614291T2 (de) * 1995-03-17 2001-12-06 Lsi Logic Corp (n+i) Ein/Ausgabekanälesteuerung, mit (n) Datenverwaltern, in einer homogenen Software-Programmierbetriebsumgebung
US5864712A (en) * 1995-03-17 1999-01-26 Lsi Logic Corporation Method and apparatus for controlling (N+I) I/O channels with (N) data managers in a homogenous software programmable environment
US5713044A (en) * 1995-12-19 1998-01-27 Intel Corporation System for creating new group of chain descriptors by updating link value of last descriptor of group and rereading link value of the updating descriptor
US5991861A (en) * 1996-03-15 1999-11-23 Adaptec, Inc. Method of enabling and disabling a data function in an integrated circuit
US5812877A (en) * 1996-03-15 1998-09-22 Adaptec, Inc. I/O command block chain structure in a memory
US5923896A (en) * 1996-03-15 1999-07-13 Adaptec, Inc. Method for sequencing execution of I/O command blocks in a chain structure by setting hold-off flags and configuring a counter in each I/O command block
US5797034A (en) * 1996-03-15 1998-08-18 Adaptec, Inc. Method for specifying execution of only one of a pair of I/O command blocks in a chain structure
US5974530A (en) * 1996-03-15 1999-10-26 Adaptec, Inc. Integrated PCI buffer controller and XOR function circuit
US5758187A (en) * 1996-03-15 1998-05-26 Adaptec, Inc. Method for enhancing performance of a RAID 1 read operation using a pair of I/O command blocks in a chain structure
US5892969A (en) * 1996-03-15 1999-04-06 Adaptec, Inc. Method for concurrently executing a configured string of concurrent I/O command blocks within a chain to perform a raid 5 I/O operation
US5881250A (en) * 1996-03-15 1999-03-09 Adaptec, Inc. Host adapter system including an integrated PCI buffer controller and XOR function circuit
US5867732A (en) * 1996-03-15 1999-02-02 Adaptec, Inc. Hardware method for verifying that an area of memory has only zero values
US5850567A (en) * 1996-03-15 1998-12-15 Adaptec, Inc. Method for specifying concurrent execution of a string of I/O command blocks in a chain structure
US5790397A (en) 1996-09-17 1998-08-04 Marathon Technologies Corporation Fault resilient/fault tolerant computing
US5896523A (en) * 1997-06-04 1999-04-20 Marathon Technologies Corporation Loosely-coupled, synchronized execution
US6199121B1 (en) 1998-08-07 2001-03-06 Oak Technology, Inc. High speed dynamic chaining of DMA operations without suspending a DMA controller or incurring race conditions
US6324598B1 (en) 1999-01-11 2001-11-27 Oak Technology Software enlarged tag register and method thereof for noting the completion of a DMA transfer within a chain of DMA transfers
US6324599B1 (en) 1999-01-11 2001-11-27 Oak Technology Computer system and method for tracking DMA transferred data within a read-ahead local buffer without interrupting the host processor
US7689732B2 (en) * 2006-02-24 2010-03-30 Via Technologies, Inc. Method for improving flexibility of arbitration of direct memory access (DMA) engines requesting access to shared DMA channels
EP2324430A4 (en) 2008-08-06 2012-07-25 Aspen Acquisition Corp DIRECT MEMORY ACCESS MOTOR (DMA) THAT CAN BE STOPPED AND RESTARTED
KR102630079B1 (ko) 2021-10-29 2024-01-29 주식회사 알앤에프케미칼 생분해성 폴리프로필렌 컴파운드의 제조방법 및 이에 따라 제조한 생분해성 폴리프로필렌 컴파운드

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3898623A (en) * 1973-06-05 1975-08-05 Ibm Suspension and restart of input/output operations
JPS60142418A (ja) * 1983-12-28 1985-07-27 Hitachi Ltd 入出力エラ−回復方式
JPS6191752A (ja) * 1984-10-11 1986-05-09 Nec Corp マイクロコンピユ−タ
US4797812A (en) * 1985-06-19 1989-01-10 Kabushiki Kaisha Toshiba System for continuous DMA transfer of virtually addressed data blocks
JPH0740252B2 (ja) * 1986-03-08 1995-05-01 株式会社日立製作所 マルチプロセツサシステム
JPS63216170A (ja) * 1987-03-05 1988-09-08 Mitsubishi Electric Corp デイジタル信号処理プロセツサ
US4989113A (en) * 1987-03-13 1991-01-29 Texas Instruments Incorporated Data processing device having direct memory access with improved transfer control
US5099417A (en) * 1987-03-13 1992-03-24 Texas Instruments Incorporated Data processing device with improved direct memory access
EP0303751B1 (en) * 1987-08-20 1992-05-20 International Business Machines Corporation Interface mechanism for controlling the exchange of information between two devices
US4930065A (en) * 1987-08-20 1990-05-29 David Computer Corporation Automatic data channels for a computer system
US5131082A (en) * 1989-06-09 1992-07-14 International Business Machines Corporation Command delivery for a computing system for transfers between a host and subsystem including providing direct commands or indirect commands indicating the address of the subsystem control block
US5027310A (en) * 1989-09-08 1991-06-25 Zilog, Inc. Carry chain incrementer and/or decrementer circuit
US5072374A (en) * 1989-11-07 1991-12-10 Ge Fanuc Automation North America, Inc. Method for communicating among a plurality of programmable logic controllers each having a dma controller

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220114148A1 (en) * 2018-02-05 2022-04-14 Bank Of America Corporation System and method for decentralized regulation and hierarchical control of blockchain architecture

Also Published As

Publication number Publication date
KR930014073A (ko) 1993-07-22
JPH05257866A (ja) 1993-10-08
JP3433385B2 (ja) 2003-08-04
US5251312A (en) 1993-10-05

Similar Documents

Publication Publication Date Title
KR100225744B1 (ko) 동적연쇄화조작동안레이스상태를막는방법및장치
JP3433386B2 (ja) 入出力記憶装置への直接メモリアクセスを行う装置及び方法
US5283883A (en) Method and direct memory access controller for asynchronously reading/writing data from/to a memory with improved throughput
US6012106A (en) Prefetch management for DMA read transactions depending upon past history of actual transfer lengths
KR910005997B1 (ko) 데이타 처리장치에 있어서 오퍼레이팅 시스템 슈퍼바이저 방법 및 장치
US4860244A (en) Buffer system for input/output portion of digital data processing system
EP0550163B1 (en) Circuit architecture for supporting multiple-channel DMA operations
US20020144027A1 (en) Multi-use data access descriptor
US20040107265A1 (en) Shared memory data transfer apparatus
US20070073826A1 (en) System and method for maintaining the integrity of data transfers in shared memory configurations
JPH0827707B2 (ja) Fifoバッファの制御装置及び制御方法並びにデータ転送を制御する装置
US6782463B2 (en) Shared memory array
US20050060441A1 (en) Multi-use data access descriptor
JP3266470B2 (ja) 強制順序で行う要求毎ライト・スルー・キャッシュを有するデータ処理システム
KR20060028705A (ko) 재 어드레스 가능한 가상 dma 제어 및 상태 레지스터들
US20120011295A1 (en) Method and apparatus for wireless broadband systems direct data transfer
US6263408B1 (en) Method and apparatus for implementing automatic cache variable update
US20040153589A1 (en) Device and method for controlling data transfer
US20080209085A1 (en) Semiconductor device and dma transfer method
US5546560A (en) Device and method for reducing bus activity in a computer system having multiple bus-masters
US5522061A (en) Read concurrency through transaction synthesis
JP2001229074A (ja) メモリ制御装置と情報処理装置及びメモリ制御チップ
JP3161422B2 (ja) マイクロコンピュータ
JPH05181778A (ja) 入出力処理装置
JPH01116827A (ja) 命令取出装置

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20020812

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee