KR20010052493A - 직접 메모리 억세스를 이용한 직렬 포트 데이터 및 상태압축과 압축해제 - Google Patents

직접 메모리 억세스를 이용한 직렬 포트 데이터 및 상태압축과 압축해제 Download PDF

Info

Publication number
KR20010052493A
KR20010052493A KR1020007013621A KR20007013621A KR20010052493A KR 20010052493 A KR20010052493 A KR 20010052493A KR 1020007013621 A KR1020007013621 A KR 1020007013621A KR 20007013621 A KR20007013621 A KR 20007013621A KR 20010052493 A KR20010052493 A KR 20010052493A
Authority
KR
South Korea
Prior art keywords
data
dma
address
destination
source
Prior art date
Application number
KR1020007013621A
Other languages
English (en)
Other versions
KR100546085B1 (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 KR20010052493A publication Critical patent/KR20010052493A/ko
Application granted granted Critical
Publication of KR100546085B1 publication Critical patent/KR100546085B1/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/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)
  • Information Transfer Systems (AREA)
  • Bus Control (AREA)

Abstract

마이크로콘트롤러(M)는 데이터를 압축 및 압축 해제하고 메모리의 한 블록에서 다른 블록으로 전송하는 직접 메모리 억세스 유닛(116)을 포함한다. 특히 워드 크기 데이터가 읽혀져서 한 바이트는 버려지고 연속적으로 저장되어 바이트 크기 데이터가 될 수 있다. 이는 확장 읽기 및 확장 쓰기와 결합되어 데이터에 따라 상태를 저장하는 비동기 직렬 포트(148)에 사용될 수 있다. 상기 상태 정보가 한번 처리되면, 상기 상태 정보는 "압축하는" DMA의 수행에 의해 추출되어 버려진다.

Description

직접 메모리 억세스를 이용한 직렬 포트 데이터 및 상태 압축과 압축해제{COMPRESSION AND DECOMPRESSION OF SERIAL PORT DATA AND STATUS USING DIRECT MEMORY ACCESS}
집적된 통신 수단(feature)들을 가지는 특화된 마이크로콘트롤러들은 통신 응용제품들에 있어서 대단히 매력적인 존재가 되고 있다. 마이크로콘크롤러, 또는 내장 콘트롤러는 단일 반도체 칩(즉, 칩) 상에 기능성을 조합하기에 대단히 적절하다. 단일 칩 내에 다양한 통신 수단을 내장함으로써, 통신 마이크로콘트롤러는 광범위한 통신 응용제품을 지원할 수 있다.
마이크로콘트롤러들은 수년간 많은 응용제품들에 사용되어져 왔다. 이러한 응용제품들 중 다수는 디지털과 아날로그 포멧으로 예를들어 전화선들, 컴퓨터 네트워크들, 그리고 근거리 네트워크(LAN)와 광역 네트워크(WAN) 같은 전자 네트워크들을 통한 통신을 포함한다. 통신 응용제품들에서, 마이크로콘트롤러는 일반적으로 다수의 집적된 통신 주변장치들과 부가적인 실행 유닛을 가진다. 이들은 저속과 고속 직렬 포트들일 수 있고, 범용 직렬 버스(USB) 인터페이스와 고 수준 데이터 연결 콘트롤 채널(HDLC)들과 같은 보다 복잡한 통신 주변장치들일 수 있다.
비동기 직렬 통신 포트는 마이크로콘트롤러에서 일반적인 부가 수단의 하나이다. 비동기 직렬 연결은 상기 마이크로콘트롤러가 다른 디바이스와 통신하거나 데이터 선들을 통해 순차적으로 데이터 비트들을 송수신할 수 있도록 한다. 대신에, 데이터가 송수신되는 전송률은 기 설정되거나 먼저 상의되어야만 하며, 수신측과 송신측 종단들 모두는 독립적으로 콘트롤된다. 이러한 데이터 전송률은 보레이트로 알려져 있으며 비트당 주기의 역수이다. 상기 보레이트는 일반적으로 기 설정된 숫자의 전송률들 중 하나이며, 이들은 산업 표준이다. 이러한 전송률은 1200, 2400, 4800, 9600, 19.2K, 28.8K, 33.3K, 그리고 56K의 보레이트를 포함하고, 높은 데이러 전송률을 포함한다.
직렬 데이터 통신의 유행함에 따라 많은 마이크로콘트롤러들이 한번에 한 비트를 송수신할 수 있는 하나 이상의 비동기 직렬 통신 포트들(ASPs)을 내장하고 있다. 이러한 마이크로콘트롤러들은 전형적으로 ASP가 서비스를 요청한다는 것을 상기마이크로콘트롤러에 알리기위해 인터럽트 신호를 채용한다. ASP는 전형적으로, 데이터 유닛이 상기 ASP로 수신되고 이를 상기 ASP에서 외부 메모리 유닛으로 전달해야 할 경우, 상기 ASP가 데이터 유닛의 전송을 마치고 다음에 전송될 데이터 유닛이 상기 외부 메모리에서 상기 ASP로 전송되어야 하는 경우, 또는 오류가 발생한 경우 인터럽트 신호를 발생시킨다.
비록 역사적으로 7또는 8 데이터 비트들이 전형적인 값이지만, ASP는 다양한 데이터 포멧에 대해 구성될 수 있다. 한편, 다수의 9비트 직렬 프로토콜(protocol)들이 마이크로콘트롤러들을 이용하여 개발되었는데, 이는 직접 메모리 억세스와 결부되는 9비트 비동기 직렬 프로토콜을 포함한다. 이러한 프로토콜들은 제목이 직접 메모리 억세스를 이용하여 하나 이상의 비동기 직렬 포트들에 데이터를 송수신하도록 구성될 수 있는 마이크로콘트롤러(A MICROCONTROLLER WHICH IS CONFIGURABLE TO TRANSFER DATA TO AND FROM ONE OR MORE ASYNCHRONOUS SERIAL PORT USING DIRECT MEMORY ACCESS)이며 존 피. 한센(Jhon P. Hansen)과 멜라니 디. 티팔도스(Melanie D. Typaldos)에 의해 1997년 2월 4일 제출된 미국 특허 제 _____호와 제목이 하나 이상의 비동기 직렬 포트들로 DMA 데이터를 송수신하는 동안 9비트 직렬 프로토콜들을 지원하는 하드웨어 수단들을 가지는 마이크로콘트롤러(A MICROCONTROILLER HAVING HARDWARE FEATURES SUPPORTING 9-BIT SERIAL PROTOCOLS DURING DMA DATA TRANSFERS TO AND FROM ONE OR MORE ASYNCHRONOUS SERIAL PORTS)이며 존 피. 한센, 로날드 더블유. 스텐츠(Ronald W. Stents) 그리고 멜라니 디. 티팔도스에 의해 1997년 2월 4일 제출된 미국 툭허 제 _____호에 설명되며, 이들은 일반적으로 여기서 참조로써 관계한다. 또한, 이러한 프로토콜들은 캘리포니아, 써니베일의 아드밴스트 마이크로 디이바이시스 인코포레이티드에 의해 Am186ES 사용자 설명서와 Am186ED 사용자 메뉴엘 모두에 설명되어 있다. 상기 명세서들에 설명된 바와 같이, 그리고 이후 설명될 바와 같이, 분리 콘트롤은 데이터의 전송 및 수신 동안 상기 셋 또는 리셋하는 것으로 아홉번째 데이터 비트를 동작시킨다. 이러한 9-비트 프로토콜을 이용하여 DMA를 지원하기 위해서, 상기 특정 비트가 특정 값으로 수신되는 경우, 상기 아홉번째 비트가 셋된 것을 나타내기위해 인터럽트가 걸린다.
본 발명은 마이크로콘트롤러들에 관한 것으로, 특히 직렬 인터페이스와 연결하는데 사용하기위한 진보된 직접 메모리 억세스 콘트롤러를 제공하는 마이크로콘트롤러에 관한 것이다.
도 1A는 본 발명데 따라 실시된 전형적인 마이크로콘트롤러의 블록 다이어그램이다.
도 1B는 도 1A의 마이크로콘트롤러에 대한 핀배열들의 간략한 핀배열 다이어그램이다.
도 2는 비동기 직렬 포트, DMA 콘트롤러, 그리고 도 1A와 1B의 마이크로콘트롤러에 대한 그들의 레지스터들 간의 관계를 예시한 블록 다이어그램이다.
도 3은 본 발명에 따른 비동기 직렬 구조 내의 주소 비트들 사용을 예시한 타이밍도이다.
도 4는 본 발명에 따르는 DMA 유닛 데이터 압축을 예시한 다이어그램이다.
도 5는 본 발명에 따르는 DMA 유닛 데이터 확장을 예시한 다이어그램이다.
도 6A-6E는 본 발명에 따르는 DMA 유닛의 레지스터 내용들을 예시한 블록 다이어그램들이다.
도 7A-7G는 본 발명에 따르는 비동기 직렬 포트의 레지스터 내용들을 예시한 블록 다이어그램들이다.
도 8은 멀티드롭(multidrop) 비동기 프로토콜의 적용을 예시한 블록 다이어그램이다.
본 발명에 따르면, 마이크로콘트롤러는 데이터 압축 또는 압축 해제를 제공하는 직접 메모리 억세스(DMA) 콘트롤러를 포함한다. 특히, 상기 DMA 콘트롤러는 상기 전송 항목 크기에 독립적이고, 조절될 수 있는 소스(source) 및 목적지 증가 값들을 가진다. 소스 포인터와 목적지 포인터는 메모리 내에서 블록으로 설정될 수 있고, 상기 소스 블록은 상위 바이트가 버려지는 워드(word) 크기의 데이터를 포함한다. 상기 소스는 각 전송 후 2만큼 증가될 수 있으며, 상기 목적지는 하나가 증가한다. 그 다음, DMA는 상기 소스의 각 워드로부터 한 바이트의 데이터 전송과, 다음 워드로의 증가와, 그리고 목적지를 위한 다음 바이트로의 증가를 수행한다. 이러한 방식에서, 데이터의 한 바이트는 적은 프로세서의 간섭을 가지는 DMA를 이용하여 각 워드로부터 추출된다.
이는 DMA와 결합된 확장된 읽음을 지원하는 비동기 직렬 포트를 적용하는 경우 특히 유용하다. 데이터는 상기 직렬 포트로부터 상기 DMA 콘트롤러를 이용하여 저장되는 해당 상태 바이트를 가지는 각 7또는 8 비트 값으로 순차적으로 읽혀진다. 먼저, 이러한 상태 바이트들이 주소 비트 또는 오류 비트에 대해 검사되고, 상기 DMA는 데이터의 필요없는 바이트를 "추출(strip)"하기위해 프로그램 될 수 있다.
유사하게, DMA 전송을 수행하기 전에, 바이트 수준 데이터는 상기 비동기 직렬 포트들이 확장 기록(extended write)을 지원하도록 상기 DMA 콘트롤러에 의해 전송되는 데이터의 앞단에 부가되는 확장 기록 바이트들에의해 워드로 확장된다.
다음은 여기서 참조로써 관계하는 응용들에 관한 것이다.
제목이 DMA를 이용하여 비동기 직렬 라인을 통한 높은 데이터 전송률을 지원하기위한 장치 및 방법(A METHOD AND APPARATUS FOR SUPPORTING HIGH DATA RATES OVER AN ASYNCHRONOUS SERIAL LINE USING DMA)이고, 멜라니 디. 티팔도스와 페트릭 이. 마우핀(Petrick E. Maupin)에 의해 1997년 8월 7일 제출된 미국 틀허 제 08/920,930호.
제목이 레지스터-대-레지스터 기반에서 주소 매칭에 사용되기위한 UART 문자 매칭(UART CHARACTER MATCHING USED FOR ADDRESS MATCHING ON A REGISTER-BY-REGISTER BASIS)이고, 멜라니 디. 티팔도스에 의해 현재 출원중인 미국 특허 대리인 사건번호 제 A98201US.
도 1A는, 본 발명에 따라 실시된 마이크로콘트롤러(M)의 블록 다이어그램을 보인다. 이러한 마이크로콘트롤러는 단일 집적회로 상에 구현되는 것이 바람직하다.
상기 마이크로콘트롤러(M)는 실행 유닛(124), 시스템 주변장치들(174), 메모리 주변장치들(176) 그리고 직렬 통신 주변장치들(172)을 서로 결합하는 내부 버스(100)를 포함한다. 상기 설명되는 실시예에서, 상기 실행 유닛(124)은 캘리포니아, 써니베일의 아드밴스트 마이크로 디이바이시스 인코포레이티드의 다양한 마이크로콘트롤러들에 적용되는 AM186 명령어 세트와 호환된다. 다양한 다른 실행 유닛들도 상기 실행 유닛(124) 대신 사용될 수 있다. 상기 시스템 주변장치들(174)은 마스크 할 수 없는 인터럽트들(NMIs), 마이크로콘트롤러 리셋들, 그리고 시스템 리셋들을 생성하기위한 워치독 타이머(watch dog timer:WDT)(104)를 포함한다. 15채널들의 사용을 통한 36 마스크할 수 있는 인터럽트 소스들을 지원하기위한 인터럽트 콘트롤러(108) 또한 시스템 주변장치로써 제공된다. 어떤 설명된 시스템 주변장치는 3채널 타이머 콘트롤 유닛(112)이 있다. 상기 타이머 콘트롤 유닛(112)은 3개의 16비트 프로그램 가능한 타이머들을 포함한다. 다른 시스템 주변장치는 4채널들(0-3)을 가진 범용 직접 메모리 억세스(DMA) 유닛(116)이다. 상기 마이크로콘트롤러(M)의 프로그램 가능한 입출력 유닛(132)은 사용자 프로그램가능한 입출력 신호들(PIOs)을 지원한다. 상기 설명된 실시예들에서, 48 PIO들이 제공된다.
상기 개방된 마이크로콘트롤러의 상기 메모리 주변장치들(176)은 DRAM 콘트롤러(170), RAM 또는 ROM과의 무접착(glueless) 인터페이스(168), 그리고 칩 선택 유닛(126)을 포함한다. 상기 설명된 실시예에서, 상기 DRAM 콘트롤러(170)는 상기 마이크로콘트롤러(M)에 완전히 집적된다. 또한, 상기 설명된 실시예에서, 상기 칩 선택 유닛(126)은 메모리 디바이스들에 사용되는 6칩 선택 출력들과 주변장치와 사용되기위한 8칩 선택 출력들을 제공한다.
범용 비동기 송수신기(UART)(136)로서 사용되는 저속 직렬 포트는 직렬 통신 주변장치를 제공한다. 상기 저속 UART(136)은 전형적으로 업계에 알려진 표준 16550 UART와 호환된다. 상기 설명된 실시예에서 다른 직렬 통신 주변장치는 동기 직렬 인터페이스(SSI)(140)이다. 상기 마이크로콘트롤러(M)는 상기 동기 직렬 인터페이스(140)에서 마스터(master)로써 동작하며, 이는 표준 동기 직렬 채널이다.
상기 설명된 실시예에서 상기 마이크로콘트롤러(M)는 통신환경들에 특히 적합하다. 이러한 목적을 위해서, 상기 마이크로콘트롤러(M)의 상기 직렬 통신 주변장치들(172)은 다수의 고속 통신 콘트롤러들을 가지는데, 이들은 고수준 데이터 링크 콘트롤(HDLC) 콘트롤러(144), 범용 직렬 버스(USB) 콘트롤러(146), 그리고 고속 직렬 포트(HSUART)(148)를 포함한다. 상기 설명된 HDLC 콘트롤러(144)는 4개의 HDLC 채널들(164)을 제공한다. 상기 HDLC 채널들(164)과 상기 USB 콘트롤러(146)는 "스마트DMA(smartDMA)"유닛(150)에 읽고 쓸수 있고, 상기 유닛은 DMA 채널들의 쌍을 통해 억세스되는 연결된 버퍼들(chained buffers)을 위해 제공된다. 상기 스마트DMA 유닛(150)은 과다한 실행 유닛(124)의 간섭 없이 고 수준의 패킷화 전송을 허용한다. 상기 스마트DMA 유닛(150)은 각각 한쌍의 DMA 채널들을 포함하는 스마트DMA(0-3)와 4개의 스마트DMA 콘트롤러들로 구성되는 것이 바람직하다.
상기 HSUART(148)은 외부 디바이스에서 상기 마이크로콘트롤러(M)로 상기 버스를 통해 비동기 직렬 연결을 형성하도록 제공된다. 상기 비동기 특성은 상기 HSUART(148)가 상기 데이터를 클럭하도록 분리 클럭 신호를 제공하지 않는다는 것을 나타낸다. 그 대신, 데이터가 전송 및 수신되는 전송률은 자동보율 설정과 상기송수신 종단들에서의 독립적인 콘트롤을 통해 기 설정되거나 선택되어야만 한다. 이러한 데이터 전송률은 보레이트로 알려져있다. 상기 마이크로콘트롤러(M)는 다중 HSUART들(148)을 포함할 수 있다는 것을 이해해야한다.
또한, 상기 설명된 HDLC 콘트롤러(144)는 인터페이스 멀티플렉서(162)를 포함한다. 상기 멀티플렉서(162)는 4개의 HDLC 채널들(164), 4개의 시간 슬롯 할당자(time slot assignor:TSA)들(166), 그리고 다수의 외부 버스들과 연결된다. 특히, 상기 시간 슬롯 할당자들 또는 다른경우 상기 HDLC 채널들(164)은 종종 패킷화 통신을 이용하는 상기 펄스 코드 변조(PCM) 하이웨이(highway), 일반 회로 인터페이스(general circuit interface:GCI), ISDN 기반 변조 인터페이스 개정 2(ISDN oriented modular interface revision 2:IOM-2) 직렬 버스, 데이터 캐리어 장비(data carrier equipment:DCE) 직렬 인터페이스, 그리고 다른 일반적이고 특별한 인터페이스들과 선택적으로 연결될 수 있다. 또한, 상기 HDLC 채널들(164)은 HDLC, SDLC, 연결 억세스 절차 평형(Link Access Procedures Balanced:LAPB), D-채널 연결 억세스 절차(Link Access Procedures on the D-channel:LAPD), 그리고 점대점(PPP)을 지원하고, 그리고 상기 특기한 바와 같이 각각은 등시성(isochronous) 또는 등시형 통신을 위한 각 HDLC에 대한 직렬 구조에 할당하기위한 독립 시간 슬롯 할당자(166)를 포함한다.
도 1B는 본 발명에 따라 실시된 상기 마이크로콘트롤러(M)에 대한 핀배열들을 예시한다. 예시된 것은 클럭(102)에 대한 클럭 핀배열, 버스 인터페이스 유닛(120)에 대한 주소 및 주소/데이터 버스 핀배열, 다시 일반적으로 상기 버스 인터페이스 유닛(120)에 대한 버스 상태 및 콘트롤 핀배열, 상기 타이머 콘트롤 유닛(112)과 연결되는 타이머 콘트롤 핀배열, USB 콘트롤러(146)에 대한 USB 콘트롤 및 송수신 콘트롤 핀배열, 동기 직렬 인터페이스(140)에 대한 동기 직렬 콘트롤러 핀배열, 프로그램 가능한 입출력 유닛(132)에 대한 프로그램 가능한 입출력 핀배열, 리셋 콘트롤 핀배열, 칩 선택 유닛(126)과 상기 버스 인터페이스 유닛(120)에 모두 연결되는 메모리와 주변장치 콘트롤 핀배열, 범용 DMA 유닛(116)과 스마트DMA 유닛(150)에 대한 DMA 콘트롤 핀배열, HDLC 콘트롤러(144)와 연결되는 HDLC 채널/DCE 인터페이스 핀배열, 그리고 저속 UART(136)에 대한 UART 핀배열, HSUART(148)에 대한 고속 UART 핀배열이다. 이러한 모든 핀배열들은 물론 예시적인것이며 다양한 다른 기능 유닛들과 그에 따른 핀배열들이 본 발명의 사상을 벗어나지 않으면서 사용될 수 있다. 예를들어서, 상기 도 1A에서 통신들과 범용 주변장치들 모두에서 몇몇은 본 발명의 사상을 벗어나지 않으면서 제거되거나 첨가될 수 있다.
본 발명에 따른 기법들과 회로들은 광범위한 마이크로콘트롤러들과 유사한 환경들에 적용될 수 있다. 용어 "마이크로콘트롤러"는 업계에서의 정의와는 다르다. 몇몇 업체에서는 내장 메모리가 없어도 프로세서 코어(core)와 부가적인 수단들(예를들어 입출력 포트들)을 가진 것들을 "마이크로프로세서"라 여기며, 디지털 신호처리기들(DSPs)은 이제 특수하거나 일반적인 콘트롤 기능들 모두에 사용된다. 따라서, 여기서 사용되는 용어 "마이크로콘트롤러"는 모든 제품들을 포괄하며, 일반적으로 실행 유닛과 부가되는 기능들 모두가 단일칩에 집적된 것을 의미한다.
도 2는 DMA 유닛(116)과 고속 UART(148)을 도시한 것으로, 여기서는 비동기 직렬 포트(ASP)(148)로 설명한다. 이는 이전에 관계한다고 설명한 바와 같이 제목이 DMA를 이용하여 비동기 직렬 라인을 통한 높은 데이터 전송률을 지원하기위한 장치 및 방법(A METHOD AND APPARATUS FOR SUPPORTING HIGH DATA RATES OVER AN ASYNCHRONOUS SERIAL LINE USING DMA)인 명세서에도 설명된다. 상기 ASP(148)은 잉여 직렬 비트로 "주소 비트"를 적용한 비동기 직렬 프로토콜을 지원할 수 있다.
도 3에서는 상기 프로토콜을 적용하는 비동기 직렬 전송을 예시한다. 시작 비트(200) 이후, 상기 ASP(148)는 7또는 8개의 데이터 비트들(202)을 송신 또는 수신한다. 이들은 낮은 순위 비트가 먼저 보내지는 비동기 프로토콜 표준 데이터 비트 전받 방식으로 보내진다. 그러나, 상기 7또는 8개의 데이터 비트들(202) 이후, 상기 ASP(148)로 지원되는 상기 주소 비트 프로토콜은 선택적인 주소 비트 AB(204)를 제공한다. 상기 주소 비트는 전형적으로 상기 ASP(148)로 8번째 또는 9번째로 송신 또는 수신되고, 전형적으로 하나의 마스터에서 복수의 슬레이브 디바이스들을 콘트롤 하는데 필요한 멀티드롭 응용으로써 응용제품에 사용된다. 비록 주소 비트로 불리우지만, 상기 비트는 흐름과 다른 콘트롤에 대한 상기 슬레이브 디바이스들 내의 인터럽트를 효과적으로 발생시키는 확장 비트로써도 동작할 수 있다. 상기 주소 비트 프로토콜은 당 업계에서 공지된 기술이다.
상기 선택적인 주소 비트 AB(204) 이후, 선택적인 페리티(parity) 비트 PB(206)가 있고, 그에 후속하여 정지 비트 ST(208)와 그 다음에 선택적인 제 2정지 비트 ST(210)가 온다.
도 2에서, 상기 DMA 유닛(116)과 상기 ASP(148)는 본 발명에 따르는 부가적인 특징들을 가지는데, 이는 도 3에 예시된 바와 같이 주소 비트 AB(204)를 적용하여 데이터를 송신 및 수신하는데 유용할 수 있다. 이러한 특징들은 상기 DMA 유닛(116)과 상기 ASP(148) 내의 레지스터들의 세트를 검사함으로써 알 수 있고, 여기서는 DMA 레지스터들(212)과 ASP 레지스터들(214)로 도시된다. 상기 DMA 레지스터들(212)은 이후 도 6A-6E와 함께 논의될 것이며, 상기 ASP 레지스터(214)는 이후 도 7A-7G와 함께 논의될 것이다.
바이트에서 워드로의 확장과 워드에서 바이트로의 압축 DMA 유닛
본 발명에 따른 상기 마이크로콘트롤러(M)의 한 측면에 있어서, 상기 DMA 유닛(116)은 서로 다른 두개의 데이터 크기를 가지는 소스와 목적지 간의 전송 중 데이터를 압축 및 압축 해제할 수 있다. 예를들어, 상기 DMA 유닛(116)은 소스 메모리 블록에서 데이터를 바이트와 바이트로 읽어들일 수 있고, 각각의 읽어들인 데이터 바이트를 낮은 순위(혹은 높은 순위)바이트 부터 순차적 워드 데이터를 목적지 메모리 블록에 기록할 수 있다. 거꾸로, 상기 DMA 유닛은 소스 블록에서 데이터를 낮은 순위 바이트부터 순차적으로 워드 데이터를 읽어들이고, 그 다음, 상기 읽어들인 바이트들을 순차적으로 목적지 블록에 저장할 수 있다. 이는 확장 읽고 쓰기 모드에 사용되는 경우 특히 유용하다. 이후 도 7A-7G와 함께 논의되겠지만, 이는 이전에 관계한다고 설명한 바와 같이, 제목이 DMA를 이용하여 비동기 직렬 라인을 통한 높은 데이터 전송률을 지원하기위한 장치 및 방법(A METHOD AND APPARATUS FOR SUPPORTING HIGH DATA RATES OVER AN ASYNCHRONOUS SERIAL LINE USING DMA)인 현재 계류중인 명세서에도 설명되고, 상기 ASP(148)은 직렬 라인을 통해 7또는 8비트 데이터 유닛들을 읽어들일 수 있지만, 상기 데이터는 상기 입출력 읽음에 해당하는 주소 비트와 상태 비트 모두에 따라 16비트 워드로 저장된다. 이들은 이하 논의될 도 7G에 예시되며, 요약하자면, 페리티 오류, 폭주(overrun) 오류, 구성(framing) 오류, 문자 매치들, 중단(break), 상기 주소 비트, 그리고 다른 상태들은 실질적으로 수신되는 데이터의 7 또는 8비트에 따라 저장될 수 있다. 상기한 것이 DMA를 이용하여 수행되는 경우, 이는 상기 실행 유닛(124)이 중단시키고, 수신된 데이터를 검사하여 어디서 오류가 발생했는지, 혹은 상기 주소 비트가 셋되었는지를 결정하며, 그리고 상기 데이터를 적절히 처리한다.
하지만, 오류가 검출되거나 주소 비트들이 처리되면, 전형적으로 상태와 연관된 상기 수신된 데이터는 더이상 필요가 없다. 즉, 상기 실행 유닛(124)은 상기 데이터를 7 또는 8비트 데이터로 워드들 대신 바이트들 내에 간단히 저장한다.
이러한 점은 상기 DMA 유닛(116)에서 특히 이점이 된다. 도 4는 논의된 바와 같이 상기 ASP 유닛(148)으로부터 데이터를 처리하는 상기 DMA 유닛(116)을 예시한다. 상기 DMA 유닛(116)은 상기 데이터를 상기 메모리(216)에 한 블록(218) 내에 데이터와 상태 순으로 저장하는데, 도시한 바와 같이 데이터1, 상태1, 데이터2, 상태2, 등이다. 그래서, 각 7 또는 8비트 데이터 값(데이터1-데이터n)은 그와 연결되는 상태 바이트(상태1-상태n)와 결합함으로써 16비트들을 점유한다.
한편, 상기 DMA 유닛(116)은 그 다음에 상기 메모리(216)에서 상기 블록(218)에서 다른 블록(220)으로 전송을 수행하도록 상기 실행 유닛(124)에 의해 프로그램 될 수 있지만, 상기 블록은 연관된 상태 없이 간단히 연속된 데이터 값들(데이터1-데이터n)만 포함한다. 상기 DMA 유닛(116)은 먼저 제 1데이터 항목(데이터1)을 상기 블록(218)에서 읽은 다음, 이를 상기 블록(220)의 상기 목적지(데이터1)에 기록한다. 한편, 그 다음, 상기 DMA 유닛(116)은 상기 블록(220) 내에서 목적지 주소를 하나 증가시키면서 동시에 상기 블록(218)의 상기 소스 주소는 둘 증가시킨다. 그래서, 상기 블록(218)로부터 읽히는 다음 데이터는 데이터2(상태1은 건너뜀)이고, 그 다음 이를 바이트로 상기 블록(220)의 제 1데이터 항목(DATA1)의 바로 뒤에 기록한다. 이것이 반복하면, 원래 16비트 데이터와 상태값들을 압축하여 이제 간단한 8비트 데이터 값이 된다.
도 5는, 반대의 경우, 외부로 데이터를 상기 ASP(148)를 통해 기록하는 방법을 예시한 것이다. 여기서, 소스 데이터 블록(222)은 상기 마이크로콘트롤러(M)가 외부 비동기 직렬 라인으로 전송해야 하는 데이터를 포함한다. 상기 데이터는 메모리의 한 바이트 내에서 각각 7 또는 8비트들을 점유하는 4개의 데이터 항목들(데이터4)를 포함한다. 상기 DMA 유닛(116)은 상기 블록(222)의 데이터 항목들 중 첫번째(데이터1)를 읽어와서, 상기 데이터 항목(데이터1)을 목적지 블록(224)으로 기록하도록 프로그램된다. 그 다음, 상기 데이터 블록(222) 내의 상기 소스 주소는 하나 증가 하지만 상기 목적지 블록(224) 내의 목적지 주소는 둘 증가한다. 그래서, 그 다음 데이터 항목(데이터2)은 상기 소스 블록(222)에서 다음것이 읽히지만, 상기 목적지 블록(224)에는 2바이트 다음에 기록된다.
상기 데이터가 실질적으로 전송되기 전에 상기 실행 유닛(124)은 상기 목적지 블록(224)의 데이터 항목들(데이터1-데이터4)의 바이트들 사이에 저장된 주소 비트들을 비우는 것이 바람직하다. 여기서, 세개의 주소 비트들(226)은 비워져 있으며 한개의 주소 비트(228)는 셋된다.
그 다음, 상기 DMA 유닛(116)은 상기 ASP(148)의 확장 기록 능력을 이용하여 상기 ASP(148)에 워드 크기 기록을 수행하도록 프로그램 된다. 그 다음, 상기 높은 순위 바이트의 낮은 순위 비트는 데이터 전송을 위한 주소 비트로 사용되고, 그 결과가 4개의 데이터 항목들(230, 232, 234, 그리고 236)로 예시되며, 이들 중 첫번째 것은 그 주소 비트가 셋되고 나머지들은 아니다.
상기 DMA 유닛(116)은 하나 이상의 DMA 채널을 포함할 수 있으며, 이러한 DMA 채널들은 회로 버퍼들로써 이용될 수 있다. 도 4에서 두 채널들을 이용하는 것도 가능하며, 이러한 경우 한 채널은 상기 ASP(148)에서 확장 데이터를 읽어들이고 그 다음 이를 상기 버퍼(218)로써 수행되는 회로 버퍼로 기록하며, 그런 연후에 제 2채널은 상기 버퍼(218)로부터 읽히고, 상기 데이터를 상기 목적지 버퍼(220) 내로 압축한다.
상기 DMA 유닛(116)으로 데이터의 압축 및 압축 해제를 제공하는 것으로, 상기 실행 유닛(124)은 상기 DMA 유닛(116)이 상기 ASP(148)로 데이터를 송수신하기 전에 데이터로부터 또는 데이터로 사용하지 않는 상태 정보를 제거하거나 부가하는데 필요한 총 처리량이 경감된다.
도 6A-6E는 본 발명에 따른 압축 및 압축 해제의 수행에 적용되는 5개의 DMA 레지스터들(212)이 예시된다. 도 6A에서, 범용 DMA 채널 "x" 콘트롤 레지스터(GDxCON0)(300)가 예시된다.(4개 채널들에서, 상기 "x"는 1에서 4라는 것을 유의한다.)
상기 GDxCON0 레지스터(300)는 시작/정지 비트(ST)(302), 자동 시작 비트(AST)(304), 터미널 카운트 비트(TC)(306), 인터럽트 허가 비트(INT)(308), 페리티 필드(P)(310), 그리고 DMA 요청 소스 필드(DSEL)(312)와 같은 다수의 표준 범용 DMA 콘트롤 비트들을 포함한다.
또한, 상기 GDxCON0 레지스터(300)는 전송 크기 비트(TS)(314)를 포함한다. 상기 비트는 상기 채널이 한번에 한 바이트를 전송할 것인지(TS = 0, 또는 1'b0), 혹은 한번에 한 워드를 전송할 것인지(TS = 1'b1)를 선택한다. 본 발명에 따르는 압축 및 압축 해제를 이용하여, 상기 TS 비트(314)는 일반적으로 바이트 크기 전송에서는 0으로 셋된다.
도 6B는 제 1범용 DMA 콘트롤 레지스터(GDxCON1)(316)를 예시한다. 상기 GDxCON1 레지스터(316) 역시 소스 주소 간격 선택 비트(SM/)(318), 소스 주소 랩(wrap) 필드(SAW)(320), 목적지 주소 간격 선택 비트(DM/)(322), 그리고 목적지 주소 랩 필드(DAW)(324)와 같은 다수의 표준 DMA 비트들을 포함한다. 상기 SM/비트(318)와 DM/(322)는 상기 소스와 목적지 간격이 메모리일지 입출력포트일 지를 선택한다.
상기 소스 또는 목적지 주소 간격이 메모리에 대한 것인 경우, 일반적으로 상기 데이터가 송수신 된 후 소스와 목적지 주소를 증감시키는 것이 바람직하다. 이러한 목적을 위해서, 두개의 필드가 제공되는데, 소스 증가 필드(SINC)(326)와 목적지 증가 필드(DINC)(328)가 그것들이다. 이들은 4비트 2's 컴플리먼트 값이고, 각 전송 이후 상기 소스와 목적지 포인터에 부가된다. 예를들어, 만일 SINC 필드(326) 또는 상기 DINC 필드(328)가 0이라면, 증가는 없다. 만일 이들이 2진수 1과 같거나 4'b0001라면, 상기 필드들은 하나 증가한다. 만일 이들이 4'b0001과 동일하다면, 상기 포인터들은 2바이트 증가하고, 만일 4'b0011과 동일하다면 3바이트 증가한다. 음의 값에서는 그 반대가 참이다. 예를들면, 2's 컴플리먼트 포멧을 이용하고, 만일 상기 SINC 또는 DINC 필드들(326 또는 328)dl 4'b1111과 같다면, 상기 소스 또는 목적지 주소는 상기 전송 후 하나 감소한다.
분리 SINC 필드(326)와 DINC 필드(328)를 제공하는 것으로, 그리고 증감된 총량이 상기 데이터 항목의 크기에 독립적이라는 것으로, DMA를 이용하는 데이터의 압축 또는 압축 해제는 영향을 받을 수 있다. 이는 도 4와 5를 이용하여 이후 다시한번 논의될 것이다.
도 6C와 6D는 소스 주소 레지스터(330)과 목적지 주소 레지스터(332)를 예시한다. 그리고 도6E는 전송 카운트 레지스터(334)를 예시한다. 이들은 모두 상기 DMA 설계와 결부시키면 잘 이해될 것이다.
도 4와 5로 돌아가면, 도 6A-6E에서 설명된 주어진 상기 레지스터들에서, 압축을 위한 상기 DMA 유닛(116)의 프로그래밍과 조작은 더 잘 이해된다. 도 4에서, 상기 ASP(148)와 상기 목적지 블록(218) 간의 전달에 있어서, 상기 DMA 유닛(116)은 한 세트의 값들(336)로 프로그램된다. 특히, 상기 소스는 입출력 위치로부터 셋되고, 각 전송 후 0만큼 증가된다(입출력 위치로 적합함). 그리고 상기 목적지는 메모리로 셋되고 각 전송 후 2만큼 증가한다. 또한, 상기 데이터 크기는 워드로 셋된다.이는 각 전송이 상기 ASP(148)로부터의 16비트 확장 직렬 읽음 값이 될 것이며, 상기 목적지 블록(218)에 워드와 워드로 저장될 것이다.
압축기능에 있어서, 상기 DMA 유닛(116)은 한 세트의 값들(338)로 프로그램 된다. 특히, 상기 소스는 메모리에서 셋되고(그리고 상기 소스 주소(330)는 상기 소스 블록(218)의 시작으로 셋될 것이고), 그리고 각 전송 후 2만큼 증가하도록 셋된다. 상기 목적지는 역시 메모리에 셋되지만, 상기 목적지 주소는 각 전송 후 1만큼 증가한다. 마지막으로, 상기 전송 크기는 1바이트로 셋된다. 이는 1바이트가 상기 소스 블록(218)에서 읽혀져서 상기 목적지 블록(220)에 데이터1로써 기록된다는 의미이다. 한편, 상기 소스 주소(330)는 상기 목적지 주소(332)가 1만큼만 증가하는 동안 2만큼 증가한다. 그 다음, 데이터의 제 2 바이트(데이터2)가 상기 소스 블록(218)에서 읽혀질 것이고, 상기 목적지 블록(220)에 데이터 1의 바로 뒤에 기록될 것이다. 그래서, 불필요한 상태 정보 상태1은 건너뛰어진다.
상기 소스 블록(218)에서 상기 데이터를 읽어들인 다음에 이는 더이상 필요가 없으므로, 상기 목적지 블록(220)은 상기 소스 블록(218)을 실질적으로 겹치도록 프로그림 될 수 있다는 것에 유의한다. 그래서, 상기 소스 버퍼는 글자그대로 목적지 버퍼로 사용될 수 있어 메모리를 절약할 수 있다.
도 5에서, 상기 DMA 유닛(116)의 확장 능력은 한 세트의 프로그램 된 값들(340)로 예시된다. 여기서, 8비트 데이터의 소스 블록(222)은 메로리들 간의 전송을 위한 상기 DMA 유닛(116)의 세팅으로, 상기 SINC 필드(326)가 1의 값으로 세팅되고 상기 DSINC 필드(328)는 2의 값으로 세팅되는 것으로 확장된다. 상기 전송 크기 비트(TS)(314)는 0으로 셋되는 것으로, 데이터는 한번에 한 바이트가 전송된다. 이러한 프로그램을 이용하여, 데이터 바이트는 상기 소스 블록(222)에서 읽어지고 상기 목적지 블록(224)으로 기록되지만, 상기 소스 블록(222)에서 연속적으로 잃혀진 다음 데이터 바이트는 상기 목적지 블록(224)에서 2바이트 이후에 기록된다. 그 다음, 상기 실행 유닛(124)은 상기 목적지 블록(224)의 주소 비트를 적절히 셋또는 리셋하고, 두번째 DMA 전송을 상기 ASP(148)로 실시한다.
여기서, 한 세트의 프로그램된 값들(342)이 사용되며, 이들은 메모리의 소스와 입출력 공간의 목적지에 제공되고, SINC(326)은 2의 값으로 소스 증가시키고 목적지는 증가시키지 않는다. 또한, 상기 전송 크기 비트(TS)(314)는 워드 전송을 위해 1로 셋된다. 이러한 결과로, 상기 확장 데이터는 상기 ASP(148)에 기록되므로 직렬 데이터의 전송에서 주소 비트인 그 아홉번째를 콘트롤 할 수 있다.
그래서, 상기 소스 증가와 목적지 증가의 독립적 콘트롤 특성과, 전송되는 데이터 크기의 독립성을 통해 메모리의 압축 및 압축해제는 영향을 받을 수 있다. 이는 워드 데이터를 바이트 데이터로 압축하거나 그 반대의 경우가 요구되는 다른 기능들에도 광범위하게 사용될 수 있을 것이다.
주소 비트를 이용한 문자 매칭
도 7A-7G는 본 발명의 다른 특징을 수행하는 특정 ASP 레지스터(214)를 예시한다. 도 7A는 수신된 데이터의 문자들 매칭을 위해 상기 ASP(148)이 적용된 6문자 매치 바이트를 예시한다. 특히, 3개의 레지스터들(HSPM0(400), HSPM1(402), 그리고 HSPM2(404))은 6문자 매치 값들(MCHR0(406)에서 MCHR5(415))을 포함한다.
3바이트 크기 값들(MCHR0(406)에서 MCHR5(415))의 조작은 도 7G를 참조하면 이해하기 쉬울 것이며, 이는 비동기 직렬 포트(418) 수신 레지스터(HSPRXD(416))를 예시한다. 상기 레지스터는 7또는 8비트 값의 수신된 데이터(RDARA(418))를 포함하며, 동시에 8상태 비트들(420에서 434)도 포함한다.
전통적으로, 상기 수신된 데이터(RDATA(418))만 상기 매치 문자 값들(MCHR0(406)에서 MCHR5(415))과 비교된다. 상기 RDATA 값(418)이 상기 매치된 문자 값들 중 하나와 매치된 경우, 상태 비트는 상태 레지스터에서 셋되며, 이는 다음의 도 7D에 예시되고, 만일 적절한 마스크 값이 셋되면 인터럽트가 생성되며, 이는 다음의 도 7E에 예시된다. 전통적으로, 상기 주소 비트(AB)(204)는 상기 HSPRXD 레지스터(416)의 확장된 데이터 내의 제 1비트로써 반영되고(여기서 상기 주소 비트 값(AB)(434)), 이후 도 7D와 함께 논의될 상기 상태 레지스터에서도 발견할 수 있다. 한편, 상기 주소 비트는 상기 문자 매치된 값들(MCHR0(406)에서 MCHR5(415)) 중 하나와 매치하는데 사용되지 않는다.
본 발명에 따르면, 부가적인 비트들이 제공되어 만일 셋되면, 상기 주소 비트 값(AB)(434)은 상기 RDATA 값 (RDATA)(418)에 부수적으로 매치된다.
이는 도 7C에 예시된 고속 직렬 포트 콘트롤 레지스터(HPCON0)(436)와 결부하면 더 이해하기 쉽다. 상기 레지스터의 일부는 주소 비트가 적용 되었는지(ABEN비트(442)로 표시됨), 상기 패리티 비트들(PB)(206)이 사용될 것인지(패리티 허용 비트(REN)(440)로 표시됨), 7또는 8비트의 데이터가 사용되어 상기 D7 비트가 사용될 것인지(허용 비트(D7)(444)), 상기 제 2정지 비트(ST2)(210)가 사용될 것인지(제 2정지 비트 허용 비트(STR2)(446))를 결정하기위한 구성 세팅을 제공한다. 데이터를 기록하는 경우, 주소 비트 셋 또는 리셋 비트(AB)(438)는 주소 비트 통신이 허용되는 한(상기 ABEN비트(442)로 콘트롤됨), 상기 전송되는 주소 비트를 셋 또는 리셋한다.
이러한 비트들 모두(438에서 446)는 전송되는 구조에 영향을 미친다. 한편, 상기 설명된 실시예에서, 전통적으로 만일 상기 수신 데이터(418)가 7비트 데이터(D7비트(444) 거짓(false))이고 주소 비트가 허용(상기 ABEN비트(442)가 참)인 경우라 하더라도, 상기 RDATA(418)는 상기 주소 비트를 포함하지 않는다. 대신에, 이는 상기 주소 비트(AB)(434)와 같이 상기 HSPRXD 레지스터(416)의 높은 순위 바이트에 계속 저장되어 있다. 그래서, 상기 비트는 상기 매치 문자들(MCHR0(406)에서 MCHR5(415))의 어느것과도 절대로 매치되지 않는다.
한편, 본 발명에 따르면, 부가적인 매치 문자 주소 비트(MATCH) 비트들은 제 2콘트롤 레지스터(HSPCON1(448))에 제공된다. 특히, 상기 레지스터(448)는 매치 허용 비트(MEN)(450)를 포함하고, 이것이 참이면 상기 MCHR0(406)에서 MCHR5(415)의 문자 매칭이 허용된다. 한편, 본 발명에 따르면, 부가적인 문자 매칭 비트들이 제공된다. 3개의 매치 주소 비트들(MAB2(452), MAB1(454), MAB0(456))은 상기 콘트롤 레지스터(HSPCON0(436))의 ABEN비트(442)에 의해 허용되는 경우 효튤적으로 상기 3개의 매치 레지스터(HSPM0(400)에서 HSPM2(404))에 대한 주소 비트 매칭 비트가 된다.
예를들어서, 상기 MAB2 비트(452)가 0이고 상기 ABEN 비트(442)가 1인 경우, 수신된 문자는 상기 HSPM2 레지스터(404)의 문자와 매치하기위해 그 주소 비트(AB)(204)를 가져야만 한다. 상기 MAB2 비트(452)가 셋되는 경우, 그리고 상기 ABEN 비트(442)가 참인 경우, 수신된 문자는 상기 HSPM2 레지스터(404)의 문자와 매치하기위해 그의 주소 비트(AB)(204)를 가져야만 한다. 상기 MAB1 비트(454)와 상기 MAB0 비트(456)는 유사하게 상기 HSPM1 레지스터(402)에서 상기 HSPM0 레지스터(400)에 해당한다.
그래서, 상기 HSPCON1 레지스터(448)의 이러한 부가적인 비트들은 상기 HSPM0 레지스터(400)에서 HSPM2 레지스터(404) 중 해당하는 것들에 대한 주소 매칭을 위해 제공된다. 상기 ASP(148)는 상기 레지스터들(HSPM1(400)에서 HSPM2(404)) 중 하나가 문자 매칭을 위해 셋되는 곳을 설정할 수 있고, 다른 두개는 주소 매칭을 위해 셋된다.
상기 HSPCON1 레지스터(448)는 확장된 기록 비트(458)와 확장된 읽기 비트(460)를 포함할 수 있으며, 이는 참인 경우 16비트 데이터를 전송 레지스터(HSPTXD)(462)(도 7F 참조)에서 읽어 오거나 상기 수신 레지스터(HSPRXD) (416)(도 7G 참조)로 수신하도록 할 수 있다. 이러한 값들이 불능이라면, 8비트 데이터만 상기 레지스터들에 저장되고, 상기 주소 비트와 상기 매치 상태는 상태 레지스터(HSPTAT)(464)(도 7D 참조)를 읽음으로써만 결정될 수 있다. 이들 중에서, 상기 상태 레지스터(464)는 매치 비트(MATCH)(466)를 포함하며, 이는 만일 상기 입력 데이터가 문자이거나 상기 HSPM0-HSPM2 레지스터들(400-402) 중 하나에 대해 (적절한 것으로) 매치되는 주소라면 참으로 설절되고, 주소 비트(AB)(468)는 만일 상기 입력 데이터의 그 주소 비트가 셋이라면 참으로 설정된다. 인터럽트 마스크 레지스터(HSPIMSK)(470)는 상기 매치 비트(MATCH)(466)와 상기 주소(AB)(468)를 인터럽트로써 적절히 통과시킨다.
도 8은 본 발명에 따르는 주소 비트 매칭을 이용한 멀티드롭 시스템을 예시한다. 호스트 시스템(500)은 직렬 데이터를 다수의 멀티드롭 주변장치들(502, 504, 그리고 506)로 전송한다. 이러한 주변장치들 각각은 그들 자신의 마이크로콘트롤러(M)(508, 510, 그리고 512)를 포함한다. 이들 각각은 상기 주변장치들(502, 504, 그리고 506)에 대해 유일한 주소(1, 2, 그리고 3)를 가지도록 프로그램될 수 있다. 각각은 수신된 문자들이 상기 주변장치들 중 하나의 주소가 매치될때 까지 각 주변장치들(502, 504, 그리고 506) 각각에 의해 효율적으로 덤프(dump)되도록 무효 모드를 유지할 수 있다. 예를들어서, 상기 주변장치(502)의 상기 마이크로콘트롤러(508)는 상기 MCHR0 바이트(406)가 상기 주변장치(502)에 할당되는 주소"1"을 포함하면서 상기 적절한 주소지정 정보를 포함하도록 프로그램될 수 있고, 그리고 그에 해당하는 주소 매칭 비트(MAB0)(456)는 상기 주소 비트 허용 (ABEN)(442)에 따라 셋 될 수 있다. 이러한 방식으로, 상기 호스트(500)가 비동기 데이터의 구조를 적절한 주소 매칭(MCHR0)(406)으로 상기 주변장치(502)로 보내는 경우, 상기 데이터는 상기 MCHR0(406)의 문자와 매치되고 상기 셋된 주소 비트는 상기 MAB0(456) 비트와 매치될 것이다. 그래서, 상기 매치 비트(MATCH)(446)는 상기 HPSTAT 레지스터(464)에서 셋되고, 그리고 상기 매치 인터럽트가 상기 HSPIMSK 레지스터(470)을 통과 시키도록 설정되었다고 가정하면 인터럽트는 상기 실행 유닛(124)으로 전달되고, 그래서 상기 주변 장치(502)는 깨어나서 후속 데이터를 처리하도록 설정된다.
그래서, 문자 매칭과 주소 매칭 모두를 상기 어떠한 매치 주소 레지스터들에 독립적으로 제공하면서, 본 발명에 따르는 상기 비동기 직렬 포트는 매치될 수 있는 문자 데이터를 기반으로 하는 데이터 구조들의 상기 시작과 정지를 검출할뿐만 아니라 멀티드롭 시스템에 있어서 역시 매칭 주소 비트를 통해 특정 마이크로콘트롤러가 주소지정 된 경우도 검출할 수 있다. 이는 상기 마이크로콘트롤러(M)의 적용에 있어서 부가에 대한 유연성을 제공한다.
본 발명에 따르는 기법들이 비동기 통신 포트들을 통해 설명되어졌지만, 이들은 압축 및 압축해제와 주소 매칭을 위해 동기 통신 포트들에도 유사하게 사용될 수 있다.
앞서 설명하고 보인 본 발명은 예시적인 것들과 그들에 관한 설명이고, 상기 예시된 장치 및 구조와 동작 방법의 구체적인 사항의 다양한 변경들이 본 발명의 사상을 벗어나지 않으면서 만들어 질 수 있다.

Claims (18)

  1. 명령들을 실행하기위한 실행 유닛(124)을 포함하는 마이크로콘트롤러에 있어서, 상기 마이크로콘트롤러는,
    소스 주소 레지스터, 목적지 주소 레지스터, 소스 증가 필드, 그리고 목적지 증가 필드를 포함하는 직접 메모리 억세스(DMA) 콘트롤러(116)를 포함하며,
    여기서, 상기 소스 증가 필드와 상기 목적지 증가 필드는 상기 소스 주소 레지스터와 상기 목적지 주소 레지스터의 증가를 독립적으로 콘트롤하고,
    여기서, 상기 소스 주소 레지스터와 상기 목적지 주소 레지스터의 증가는 전송 크기에도 독립적이며 그로인해 DMA 전송 중 데이터가 압축 또는 압축 해제될 수 있도록 하는 것을 특징으로 하는 마이크로콘트롤러.
  2. 제 1항에 있어서, 이는,
    직렬 데이터를 수신하기위한 직렬 포트(148)와, 상기 직렬 포트는 상기 DMA 콘트롤러(116)와 연결되며,
    여기서 상기 DMA 콘트롤러(116)는 데이터와 상태 모두를 상기 직렬 포트(148)에서 메모리로 전송하도록 구성되고,
    여기서 상기 DMA 콘트롤러(116)는 상기 수신된 데이터의 상태 부분이 버려진 곳으로 메모리에서 메모리로 후속 DMA를 수행하도록 구성된 것을 특징으로 하는 마이크로콘트롤러.
  3. 제 2항에 있어서, 여기서 상기 직렬 포트(148)는 비동기 직렬 포트인 것을 특징으로 하는 마이크로콘트롤러.
  4. 제 2항에 있어서, 상기 직렬 통신 포트(148)로 수신한 상기 상태 정보는 주소 비트 상태 정보를 포함하는 것을 특징으로 하는 마이크로콘트롤러.
  5. 제 4항에 있어서, 상기 직렬 포트(148)는 동기 직렬 포트인 것을 특징으로 하는 마이크로콘트롤러.
  6. 제 1항에 있어서, 상기 DMA 콘트롤러(116)는 상기 소스 주소에서 상기 목적지 주소로 데이터 한 바이트를 전송할때 마다, 상기 소스 주소를 2만큼 증가시키고 상기 목적지 주소를 1만큼 증가시키도록 구성되는 것을 특징으로 하는 마이크로콘트롤러.
  7. 직접 메모리 억세스(DMA) 시스템에 있어서, 이는
    소스 주소 레지스터, 목적지 주소 레지스터, 소스 증가 필드, 그리고 목적지 증가 필드를 포함하는 직접 메모리 억세스(DMA) 콘트롤러(116)를 포함하며,
    여기서, 상기 소스 증가 필드와 상기 목적지 증가 필드는 상기 소스 주소 레지스터와 상기 목적지 주소 레지스터의 증가를 독립적으로 콘트롤하고,
    여기서, 상기 소스 주소 레지스터와 상기 목적지 주소 레지스터의 증가는 전송 크기에도 독립적이며 그로인해 DMA 전송 중 데이터가 압축 또는 압축 해제될 수 있도록 하는 것을 특징으로 하는 DMA 시스템.
  8. 제 7항에 있어서, 이는,
    직렬 데이터를 수신하기위한 직렬 포트(148)와, 상기 직렬 포트는 상기 DMA 콘트롤러(116)와 연결되며,
    여기서 상기 DMA 콘트롤러(116)는 데이터와 상태 모두를 상기 직렬 포트(148)에서 메모리로 전송하도록 구성되고,
    여기서 상기 DMA 콘트롤러(116)는 상기 수신된 데이터의 상태 부분이 버려진 곳으로 메모리에서 메모리로 후속 DMA를 수행하도록 구성된 것을 특징으로 하는 DMA 시스템.
  9. 제 8항에 있어서, 여기서 상기 직렬 포트(148)는 비동기 직렬 포트인 것을 특징으로 하는 DMA 시스템.
  10. 제 8항에 있어서, 상기 비동기 직렬 통신 포트로 수신한 상기 상태 정보는 주소 비트 상태 정보를 포함하는 것을 특징으로 하는 DMA 시스템.
  11. 제 10항에 있어서, 상기 직렬 포트(148)는 동기 직렬 포트인 것을 특징으로 하는 DMA 시스템.
  12. 제 7항에 있어서, 상기 DMA 콘트롤러(116)는 상기 소스 주소에서 상기 목적지 주소로 데이터 한 바이트를 전송할때 마다, 상기 소스 주소를 2만큼 증가시키고 상기 목적지 주소를 1만큼 증가시키도록 구성되는 것을 특징으로 하는 DMA 시스템.
  13. 동일 주소 레지스터와 목적지 주소 레지스터를 포함하는 DMA 콘트롤러에 있어서, 상기 DMA 콘트롤러(116)는,
    데이터를 상기 소스 주소에서 상기 목적지 주소로 전송한 다음 상기 소스 주소와 상기 목적지 주소를 변경하여 상기 소스 주소에서 상기 목적지 주소로 전송하는 동안 상기 소스 주소에 의해 지시되는 블록에 위치한 데이터의 일부가 추출되도록 하는 수단을 가지는 것을 특징으로 하는 DMA 콘트롤러.
  14. 동일 주소 레지스터와 목적지 주소 레지스터를 포함하는 DMA 콘트롤러(116)에 있어서, 상기 DMA 콘트롤러(116)는,
    데이터를 상기 소스 주소에서 상기 목적지 주소로 전송한 다음 상기 소스 주소와 상기 목적지 주소를 변경하여 상기 소스 주소에서 상기 목적지 주소로 전송하는 동안 상기 목적지 주소에 의해 지시되는 블록에 위치한 데이터의 일부를 건너뛰도록 하는 수단을 가지는 것을 특징으로 하는 DMA 콘트롤러.
  15. DMA 콘트롤러(116)가 소스 주소 블록과 목적지 주소 블록을 지시하도록 설정하는 단계와,
    상기 DMA 콘트롤러(116)가 상기 소스 주소 블록에서 상기 목적지 주소 블록으로의 전송마다, 소스 주소를 2만큼 증가시키고 목적지 주소를 1만큼 증가시키도록 설정하는 단계와,
    상기 DMA 콘트롤러(116)가 매 전송마다 한 바이트의 정보를 전송하도록 설정하는 단계와, 그리고
    DMA를 수행하여 상기 소스로에서 매 한바이트 걸러 한바이트의 정보는 상기 목적지 주소 블록으로 기록됨에 따라 버려지도록 하는 단계를 포함하는 것을 특징으로 하는 DMA 콘트롤러(116)를 적용하여 메모리 내에서 데이터를 압축하는 방법.
  16. 제 15항에 있어서, 상기 소스 주소는 상기 목적지 주소와 동일한 위치로 설정되는 것을 특징으로 하는 DMA 콘트롤러(116)를 적용하여 메모리 내에서 데이터를 압축하는 방법.
  17. 비동기 직렬 포트(148)를 통해 직렬 데이터와 그에 따른 상태를 수신하는 단계와,
    상기 데이터 및 그에 따른 상태를 메모리 위치로 전송하는 단계와,
    다수의 데이터와 상태에 대한 다수의 메모리 위치들로의 송수신 단계를 반복하여 데이터와 상태 모두를 다수의 메모리 위치에 저장하는 단계와,
    직접 메모리 억세스를 수행하는 것으로 상기 데이터에 대한 상기 상태를 버리고 목적지 메모리 위치에 상기 상태 없이 상기 데이터를 저장하도록 상기 다수의 메모리에서 데이터를 전송하는 단계를 포함하는 것을 특징으로 하는 수신된 확장 직렬 데이터 압축 방법.
  18. 제 17항에 있어서, 상기 상태는 8비트로 저장되고, 상기 데이터도 8비트로 저장되며, 상기 DMA 전송은 상기 데이터의 한 바이트를 상기 소스에서 상기 목적지로 전송하고, 소스 주소 포인터는 2만큼 증가시키고 상기 목적지 주소 포인터는 1만큼 증가시키는 것으로 상기 상태를 상기 데이터에서 추출하고, 상기 전송 단계를 반복하는 것을 특징으로 하는 수신된 확장 직렬 데이터 압축 방법.
KR1020007013621A 1998-06-01 1999-03-01 직접 메모리 액세스를 이용한 직렬 포트 데이터 및 상태의 압축 및 복원 KR100546085B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/088,133 US6385670B1 (en) 1998-06-01 1998-06-01 Data compression or decompressions during DMA transfer between a source and a destination by independently controlling the incrementing of a source and a destination address registers
US09/088,133 1998-06-01

Publications (2)

Publication Number Publication Date
KR20010052493A true KR20010052493A (ko) 2001-06-25
KR100546085B1 KR100546085B1 (ko) 2006-01-26

Family

ID=22209549

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020007013621A KR100546085B1 (ko) 1998-06-01 1999-03-01 직접 메모리 액세스를 이용한 직렬 포트 데이터 및 상태의 압축 및 복원

Country Status (6)

Country Link
US (1) US6385670B1 (ko)
EP (1) EP1082666B1 (ko)
JP (1) JP2002517820A (ko)
KR (1) KR100546085B1 (ko)
DE (1) DE69900477T2 (ko)
WO (1) WO1999063447A1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6816921B2 (en) * 2000-09-08 2004-11-09 Texas Instruments Incorporated Micro-controller direct memory access (DMA) operation with adjustable word size transfers and address alignment/incrementing
US7861073B2 (en) * 2007-01-03 2010-12-28 Apple Inc. On-chip decompression engine
US10275375B2 (en) * 2013-03-10 2019-04-30 Mellanox Technologies, Ltd. Network interface controller with compression capabilities
US20220374368A1 (en) * 2021-05-19 2022-11-24 Hughes Network Systems, Llc System and method for enhancing throughput during data transfer

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5208915A (en) * 1982-11-09 1993-05-04 Siemens Aktiengesellschaft Apparatus for the microprogram control of information transfer and a method for operating the same
US4700391A (en) * 1983-06-03 1987-10-13 The Variable Speech Control Company ("Vsc") Method and apparatus for pitch controlled voice signal processing
US4642791A (en) * 1983-09-15 1987-02-10 Pitney Bowes Inc. Interface for mailing system peripheral devices
US4646261A (en) * 1983-09-27 1987-02-24 Motorola Computer Systems, Inc. Local video controller with video memory update detection scanner
JP2539058B2 (ja) * 1989-03-30 1996-10-02 三菱電機株式会社 デ―タプロセッサ
JP2527821B2 (ja) * 1989-09-14 1996-08-28 株式会社日立製作所 デ―タ処理方法及び入出力装置
US4974223A (en) * 1989-09-18 1990-11-27 International Business Machines Corporation Parallel architecture for high speed flag detection and packet identification
JPH04219859A (ja) * 1990-03-12 1992-08-10 Hewlett Packard Co <Hp> 並列プロセッサに直列命令ストリームデータを分散するハードウェアディストリビュータ
EP0467717B1 (en) * 1990-07-20 1998-01-14 Matsushita Electric Industrial Co., Ltd. Data shuffling apparatus
GB2250615B (en) * 1990-11-21 1995-06-14 Apple Computer Apparatus for performing direct memory access with stride
US5313454A (en) * 1992-04-01 1994-05-17 Stratacom, Inc. Congestion control for cell networks
JPH06133269A (ja) * 1992-09-02 1994-05-13 Pioneer Electron Corp 映像信号記録及び再生装置
FR2716276B1 (fr) * 1994-02-16 1996-05-03 Sgs Thomson Microelectronics Circuit de réorganisation de données.
US5588029A (en) * 1995-01-20 1996-12-24 Lsi Logic Corporation MPEG audio synchronization system using subframe skip and repeat
US5633865A (en) * 1995-03-31 1997-05-27 Netvantage Apparatus for selectively transferring data packets between local area networks
US5737638A (en) 1995-07-14 1998-04-07 International Business Machines Corporation System for determining plurality of data transformations to be performed upon single set of data during single transfer by examining communication data structure
US5761453A (en) * 1995-12-07 1998-06-02 Apple Computer, Inc. Method and system for increasing the throughput of serial data in a computer system
US5854640A (en) * 1996-01-02 1998-12-29 Intel Corporation Method and apparatus for byte alignment of video data in a memory of a host system
US5768445A (en) 1996-09-13 1998-06-16 Silicon Graphics, Inc. Compression and decompression scheme performed on shared workstation memory by media coprocessor
US5982373A (en) * 1996-11-12 1999-11-09 Chromatic Research, Inc. Dynamic enhancement/reduction of graphical image data resolution
US5896549A (en) * 1997-02-04 1999-04-20 Advanced Micro Devices, Inc. System for selecting between internal and external DMA request where ASP generates internal request is determined by at least one bit position within configuration register
US5958024A (en) * 1997-08-29 1999-09-28 Advanced Micro Devices, Inc. System having a receive data register for storing at least nine data bits of frame and status bits indicating the status of asynchronous serial receiver
US5944800A (en) * 1997-09-12 1999-08-31 Infineon Technologies Corporation Direct memory access unit having a definable plurality of transfer channels

Also Published As

Publication number Publication date
US6385670B1 (en) 2002-05-07
WO1999063447A1 (en) 1999-12-09
KR100546085B1 (ko) 2006-01-26
EP1082666A1 (en) 2001-03-14
EP1082666B1 (en) 2001-11-14
DE69900477T2 (de) 2002-07-18
JP2002517820A (ja) 2002-06-18
DE69900477D1 (de) 2001-12-20

Similar Documents

Publication Publication Date Title
US5568619A (en) Method and apparatus for configuring a bus-to-bus bridge
USRE41494E1 (en) Extended cardbus/PC card controller with split-bridge technology
US20030074502A1 (en) Communication between two embedded processors
US5958024A (en) System having a receive data register for storing at least nine data bits of frame and status bits indicating the status of asynchronous serial receiver
TW200842592A (en) Improved DMAc to handle transfers of unknown lengths
WO2002079971A1 (en) Programmable cpu/interface buffer structure using dual port ram
US20180196764A1 (en) Computing module with serial data connectivity
KR100476895B1 (ko) 가변 가능한 데이터 전송 모드를 갖는 인터페이스 장치 및그것의 동작 방법
US6332173B2 (en) UART automatic parity support for frames with address bits
KR100546085B1 (ko) 직접 메모리 액세스를 이용한 직렬 포트 데이터 및 상태의 압축 및 복원
US6105081A (en) UART character matching used for address matching on a register-by-register basis
US6463483B1 (en) Low latency input-output interface
US6442178B1 (en) System and method for data alignment in a communication system
US6141741A (en) Computer system with a shared address bus and pipelined write operations
KR100642158B1 (ko) 슬레이브 그룹 인터페이스 장치와, 슬레이브 그룹 인터페이스 장치를 통해 버스와 주변 장치를 인터페이스하는 방법 및 시스템
EP0193305A2 (en) System interface for coupling standard microprocessor to a communications adapter
US6311235B1 (en) UART support for address bit on seven bit frames
US7065669B2 (en) System and method for providing a write strobe signal to a receiving element before both an address and data signal
JP3571886B2 (ja) データ処理装置
JPS5953579B2 (ja) 文字圧縮装置
CN112445742A (zh) 一种地址宽度自动识别的方法
EP0171940A1 (en) A direct memory access device and a method of using the device in a data transfer system
JPH05342090A (ja) データ処理装置
JPS6041158A (ja) バス制御方式
US20060288141A1 (en) Modular computer

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

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee