KR20100124852A - 임의적인 처리 기능을 갖는 중앙 dma - Google Patents

임의적인 처리 기능을 갖는 중앙 dma Download PDF

Info

Publication number
KR20100124852A
KR20100124852A KR1020107024433A KR20107024433A KR20100124852A KR 20100124852 A KR20100124852 A KR 20100124852A KR 1020107024433 A KR1020107024433 A KR 1020107024433A KR 20107024433 A KR20107024433 A KR 20107024433A KR 20100124852 A KR20100124852 A KR 20100124852A
Authority
KR
South Korea
Prior art keywords
dma
data
controller
dma controller
channel
Prior art date
Application number
KR1020107024433A
Other languages
English (en)
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 KR20100124852A publication Critical patent/KR20100124852A/ko

Links

Images

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
    • 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/16Handling requests for interconnection or transfer for access to memory bus

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)
  • Storage Device Security (AREA)

Abstract

전송된 데이터를 중간 매체에 먼저 저장하는 일이 없이 DMA 제어기(202)에서 데이터를 변환하는 방법 및 시스템이 개시되어 있다. 이 방법은 DMA 제어기(202)가 시스템 내의 발신측 장소와 시스템 내의 목적지 장소 간에 전송하기 위한 데이터에 액세스하는 단계를 포함한다. 액세스된 데이터는 목적지 장소로 전송되기 전에 DMA 제어기(202)를 통해 전달된다. 데이터가 DMA 제어기(202)를 통해 전달되는 동안, 데이터가 수정된 상태로 변환된다. 이 변환은 데이터의 암호화 또는 복호화를 포함할 수 있다. 이 변환은 또한 인코딩 프로세스를 통해 오류 정정 비트를 데이터를 추가하는 것 또는 이전에 인코딩된 데이터를 디코딩하는 것을 포함할 수 있다. 이 변환의 완료 시에, 데이터는 소정의 목적지 장소(통상적으로 메모리 회로 또는 I/O 장치)로 바로 전송된다. 또한, 데이터 변환을 수행할 수 있는 DMA 제어기(202)도 개시되어 있다.

Description

임의적인 처리 기능을 갖는 중앙 DMA{CENTRAL DMA WITH ARBITRARY PROCESSING FUNCTIONS}
본 발명은 일반적으로 직접 메모리 액세스 전송 동안에 데이터를 수정된 상태로 변환하는 것에 관한 것이다.
이 단락은 이하에서 기재되고 및/또는 청구되는 본 발명의 다양한 양태들에 관련되어 있을 수 있는 기술의 다양한 양태들을 독자에게 소개하기 위한 것이다. 이 설명은 본 발명의 다양한 양태들에 대한 더 나은 이해를 용이하게 하도록 독자에게 배경 정보를 제공하는 데 도움이 될 것으로 생각된다. 따라서, 이러한 설명이 종래 기술의 인정이 아니라 이러한 관점에서 읽혀져야 한다는 것을 잘 알 것이다.
최근의 전자 장치들에서 DMA(Direct Memory Access) 제어기가 널리 사용된다. DMA 제어기는 전자 장치에서 CPU(central processing unit)에 부담을 주지 않고 데이터 전송을 가능하게 한다. CPU는 동작하기 위해 일련의 명령들 또는 명령어들을 이용한다. 이러한 명령어들이 종종 프로그램으로서 그룹화되어 있다. 프로그램들은 통상적으로 하드 디스크 드라이브 또는 비휘발성 메모리와 같은 장기 저장 장치들에 저장되어 있다. 이러한 장기 저장 장치들에 액세스하는 것은 CPU가 유휴 상태로 기다려야만 하는 일정한 시간을 필요로 한다.
DMA 제어기의 사용은 CPU가 유휴 상태로 있어야만 하는 시간을 감소시킬 수 있다. 통상적으로, CPU는 프로그램으로서 그룹화되어 있는 일련의 명령어들을 가져오는 일을 DMA 제어기에 넘긴다. 그러면, DMA가 CPU를 위해 프로그램을 가져오는 동안, CPU는 이전에 가져온 명령어들을 자유로이 실행한다. DMA 제어기는 보통 메모리 내의 장소와 I/O 장치 사이에서 또는 I/O 장치와 메모리 내의 장소 사이에서 데이터를 전송한다. DMA 제어기는 또한 메모리 내의 2개의 장소 사이에서 또는 직접 I/O 장치들 사이에서 데이터를 전송하는 데 사용될 수 있다. 어떤 데이터 소스와 어떤 데이터 수신기 간의 DMA 제어기에 의한 데이터의 전송은 DMA 채널을 통해 달성된다. DMA 채널은 DMA 제어기와 장치 사이의 경로이다. DMA 채널은 통상적으로 데이터, 명령 신호, 및 클록 신호를 장치로 전달한다.
최근의 휴대용 전자 장치 내의 데이터가 해커들에 대해 안전하고 그리고 동작 동안 오류가 없는 것이 중요하다. 그러나, 데이터를 보호하려는 현재의 노력들이 시스템 대기시간의 형태로 장치에 오버헤드를 부가한다. 유사하게, 장치의 사용자가 오염되지 않은 데이터를 이용할 수 있게 하기 위한 노력들도 시스템 대기시간의 형태로 장치에 오버헤드를 부가한다. 예를 들어, DMA 전송 동안에 액세스된 데이터는 전송이 완료될 수 있기 전에 보안 또는 오류 정정 시스템으로 통해 전송되어야만 하기 때문에 느려질 수 있다. 그에 따라, 장치의 동작을 느려지게 하지 않으면서 오염되지 않은 데이터를 보호하는 기능이 필요하다.
예로서 본 명세서에 개시된 실시예들의 소정의 양태들이 이하에 요약되어 있다. 이러한 양태들이 단지 독자에게 본 명세서에 개시되고 및/또는 청구된 본 발명이 취할 수 있는 소정의 형태들의 간략한 요약을 제공하기 위하여 제시되어 있다는 것과 이러한 양태들이 본 명세서에 개시되고 및/또는 청구된 임의의 발명의 범위를 제한하기 위한 것이 아니라는 것을 잘 알 것이다. 실제로, 본 명세서에 개시되고 및/또는 청구된 임의의 발명이 이하에 기술되어 있지 않을 수도 있는 다양한 양태들을 포괄할 수 있다.
DMA 제어기를 갖는 전자 장치가 제공된다. 일 실시예에서, DMA 제어기는 DMA 버스에 연결되어 있으며, 이 DMA 버스를 통해 복수의 I/O 장치들 및 저장 장치들이 액세스될 수 있다. DMA 제어기는 또한 복수의 개별적으로 배선된(individually wired) DMA 채널들을 통해 복수의 I/O 장치들 및 저장 장치들에 개별적으로 연결될 수 있다. I/O 장치들은, 각각이 지정된 DMA 채널을 따라 통신을 하는 동안, DMA 버스의 대역폭을 공유할 수 있다. 일 실시예에서, DMA 제어기는, DMA 전송된 정보를 복호화하고 그 데이터를 요청측 장치로 직접 보내기 위해, 복호화 기술들을 이용할 수 있는 암호화 회로(cryptographic circuitry)를 포함하고 있다. 이러한 방식으로, 비암호화된 데이터가 요청측 장치로 보내지기 전에 전송측 장치에 보호되지 않은 채로 존재하지 않기 때문에, 데이터가 불법 사용자에 의해 해킹될 기회가 감소된다. 암호화 회로는 또한 그 데이터를 전자 장치에 안전하게 저장하기 위해 데이터를 암호화하는 데 암호화 기술들을 이용할 수 있다.
다른 실시예에서, DMA 제어기는 DMA 전송된 데이터에서 오류를 검출하여 정정하기 위해 오류 정정 코드를 이용할 수 있는 오류 검출 및 정정 회로를 포함한다. 오류 검출 및 정정 회로는 또한, DMA 제어기가 전자 장치에 저장하기 위한 데이터를 인코딩하여 그 데이터의 오류 정정된 검색을 도울 수 있도록 하는 오류 정정 인코딩 회로도 포함할 수 있다.
도면들 전체에 걸쳐 유사한 참조 번호가 유사한 부분들을 나타내는 첨부 도면을 참조하여 소정의 예시적인 실시예들에 대한 이하의 상세한 설명을 읽어보면, 본 발명의 이들 및 기타 특징, 양태 및 이점이 더 잘 이해될 것이다.
도 1은 본 발명의 일 실시예에 따른, 휴대용 미디어 플레이어와 같은 전자 장치를 나타낸 사시도이다.
도 2는 본 발명의 일 실시예에 따른, 도 1의 휴대용 미디어 플레이어의 간략화된 블록도이다.
도 3은 본 발명의 제2 실시예에 따른, 도 1의 휴대용 미디어 플레이어의 간략화된 블록도이다.
도 4는 본 발명의 일 실시예에 따른, DMA 전송을 수행할 때의 휴대용 미디어 플레이어의 동작을 나타낸 흐름도이다.
도 5는 본 발명의 일 실시예에 따른, 도 1 및 도 2의 DMA 제어기의 간략화된 블록도이다.
도 6은 본 발명의 일 실시예에 따른, DMA 제어기의 동작을 나타내는 흐름도이다.
도 7은 본 발명의 일 실시예에 따른, 도 5의 DMA 채널 인터페이스의 간략화된 블록도이다.
도 8은 DMA 전송 동안 채널 제어 논리의 동작을 나타낸 흐름도이다.
본 발명의 하나 이상의 구체적인 실시예들에 대해 이하에서 기술할 것이다. 이러한 기술된 실시예들은 본 발명의 예시에 불과하다. 또한, 이러한 예시적인 실시예들에 대한 간략한 설명을 제공하기 위해, 실제의 구현의 모든 특징들이 본 명세서에 기술되어 있지 않을 수 있다. 임의의 이러한 실제 구현의 개발에서, 임의의 엔지니어링 또는 설계 프로젝트에서와 같이, 구현마다 다를 수 있는 시스템-관련 및 사업-관련 제약요건들에 부합하는 것과 같은 개발자들의 특정의 목적들을 달성하기 위해 많은 구현-관련 결정들이 행해져야만 한다는 것을 잘 알 것이다. 게다가, 이러한 개발 노력이 복잡하고 시간이 많이 걸릴 수 있지만, 그럼에도 불구하고 본 발명의 이점을 갖는 당업자에게는 설계, 제조 및 제작의 일상적인 일이라는 것을 잘 알 것이다.
이제 도면들을 참조하면, 도 1은 본 발명의 일 실시예에 따른 전자 장치(10)를 나타낸 것이다. 일부 실시예들에서, 전자 장치(10)는 음악 및/또는 비디오를 재생하는 미디어 플레이어, 휴대폰, 개인 데이터 관리 시스템(personal data organizer), 또는 이들의 임의의 조합일 수 있다. 따라서, 전자 장치(10)는 미디어 플레이어, 휴대폰, 개인 데이터 관리 시스템 등의 기능들 중 임의의 하나 또는 이들의 조합을 제공하는 통합된 장치일 수 있다. 또한, 전자 장치(10)는 사용자가 인터넷 또는 기타 네트워크들, 예컨대 근거리 통신망 또는 원거리 통신망에 연결하여 이를 통해 통신할 수 있도록 할 수 있다. 예를 들어, 전자 장치(10)는 사용자가 전자 메일, 텍스트 메시징, 인스턴트 메시징을 사용하여 또는 기타 형태의 전자 통신을 사용하여 통신을 할 수 있도록 할 수 있다. 예로서, 전자 장치(10)는 Apple Inc.로부터 입수가능한 디스플레이 화면을 갖는 iPod® 또는 iPhone®의 한 모델일 수 있다.
소정 실시예들에서, 전자 장치(10)는 재충전가능한 또는 교체가능한 배터리에 의해 전원을 공급받을 수 있다. 이러한 배터리-전원 구현은 휴대성이 아주 높을 수 있으며, 따라서 사용자가 여행, 작업, 운동 등을 하는 동안에 전자 장치(10)를 들고 다닐 수 있게 한다. 이러한 방식으로, 전자 장치(10)에 의해 제공되는 기능들에 기초하여 전자 장치(10)의 사용자는, 장치(10)를 자유로이 들고 다니면서, 음악을 듣고, 비디오 게임 또는 비디오를 재생하며, 비디오를 녹화하거나 사진을 찍고, 전화를 걸고 받으며, 다른 사람들과 통신을 하고, 다른 장치들을 제어하며(예를 들어, 장치(10)가 리모콘 및/또는 블루투스 기능을 포함할 수 있음), 기타 등등을 할 수 있다. 또한, 소정 실시예들에서, 장치(10)는 사용자의 주머니 또는 손에 비교적 쉽게 들어가도록 하는 크기로 되어 있을 수 있다. 이러한 실시예들에서, 장치(10)는 비교적 작고, 그의 사용자에 의해 쉽게 다루어지고 이용되며, 따라서 실제로 사용자가 어디를 가든지 들고 다닐 수 있다. 본 명세서에 기술된 이 설명 및 예들이 일반적으로, 도 1에 도시된 것과 같은, 휴대용인 전자 장치(10)를 참조하고 있지만, 본 명세서에 논의된 기술들이, 장치의 휴대성과 상관없이, 디스플레이를 갖는 임의의 전자 장치에 적용가능할 수 있다는 것을 잘 알 것이다.
도시된 실시예에서, 전자 장치(10)는 인클로저(12), 디스플레이(14), 사용자 입력 구조(16), 및 입/출력 커넥터(18)를 포함한다. 인클로저(12)는 플라스틱, 금속, 합성 물질, 또는 기타 적당한 물질 또는 이들의 임의의 조합으로 형성될 수 있다. 인클로저(12)는 전자 장치(10)의 내부 구성요소들을 물리적 손상으로부터 보호할 수 있고, 또한 내부 구성요소들을 EMI(electromagnetic interference)로부터 차폐할 수 있다.
디스플레이(14)는 LCD(liquid crystal display)일 수 있거나, LED(light emitting diode)-기반 디스플레이, OLED(organic light emitting diode)-기반 디스플레이, 또는 다른 적당한 디스플레이일 수 있다. 본 기술의 소정 실시예들에 따르면, 디스플레이(14)는 사용자 인터페이스(22)는 물론, 로고, 아바타, 사진, 앨범 아트 등의 다양한 이미지들을 디스플레이할 수 있다. 또한, 일 실시예에서, 디스플레이(14)는 사용자가 사용자 인터페이스와 상호작용할 수 있는 터치 스크린일 수 있다. 디스플레이(14)는 또한 전원 상태, 통화 상태, 메모리 상태 등과 같은 피드백을 사용자에게 제공하기 위해 다양한 기능 및/또는 시스템 표시자들을 디스플레이할 수 있다. 이러한 표시자들이 디스플레이(14) 상에 디스플레이되는 사용자 인터페이스에 포함될 수 있다. 본 명세서에 기술된 바와 같이, 소정 실시예들에서, 사용자 인터페이스(22)가 디스플레이(14) 상에 디스플레이될 수 있고, 사용자가 전자 장치(10)와 상호작용하는 메커니즘을 제공할 수 있다. 사용자 인터페이스는 텍스트 사용자 인터페이스, 그래픽 사용자 인터페이스(GUI), 또는 이들의 임의의 조합일 수 있고, 디스플레이(14)의 영역들 전부에 디스플레이될 수 있는 다양한 레이어, 창, 스크린, 템플릿, 요소 또는 기타 구성요소를 포함할 수 있다.
일 실시예에서, 사용자 입력 구조들(16) 중 하나 이상이, 동작 모드, 출력 레벨, 출력 유형 등의 제어에 의한 것과 같이, 장치(10)를 제어하도록 구성되어 있다. 예를 들어, 사용자 입력 구조들(16)은 장치(10)을 켜거나 끄는 버튼을 포함할 수 있다. 일반적으로, 전자 장치(10)의 실시예들은 버튼, 스위치, 제어 패드, 키, 노브, 스크롤 휠, 또는 임의의 다른 적당한 입력 구조들을 비롯한 임의의 수의 사용자 입력 구조들(16)을 포함할 수 있다. 입력 구조들(16)은, 장치(10)의 기능들 또는 장치(10)에 연결되거나 장치(10)에 의해 사용되는 다른 장치들의 기능들을 제어하기 위해, 장치(10) 상에 디스플레이되는 사용자 인터페이스와 함께 동작할 수 있다. 예를 들어, 사용자 입력 구조들(16)에 의해 사용자는 디스플레이된 사용자 인터페이스를 탐색하거나 이러한 디스플레이된 사용자 인터페이스를 기본 스크린 또는 홈 스크린으로 되돌아가게 할 수 있다.
사용자 인터페이스(22)에 의해, 소정 실시예들에서, 사용자는, 하나 이상의 사용자 입력 구조들(16)을 통해 및/또는 디스플레이(14)의 터치 감응 구현을 통해, 디스플레이된 인터페이스 요소들과 인터페이스할 수 있다. 이러한 실시예들에서, 사용자 인터페이스는 사용자가, 터치 스크린 또는 기타 입력 구조에 의해, 디스플레이(14) 상에 디스플레이된 옵션들 중에서 선택할 수 있게 하는 상호작용적 기능을 제공한다. 따라서, 사용자는 사용자 인터페이스(22)와의 적절한 상호작용에 의해 장치(10)를 동작시킬 수 있다. 사용자 인터페이스(22)는 사용자와 장치(10) 간의 상호작용을 가능하게 하도록 임의의 적당한 설계를 가질 수 있다. 따라서, 사용자 인터페이스(22)는 창, 메뉴, 그래픽, 텍스트, 키보드 또는 숫자 키패드, 스크롤링 장치, 또는 임의의 다른 요소들을 제공할 수 있다. 일 실시예에서, 사용자 인터페이스(22)는 스크린, 템플릿, 및 UI 구성요소를 포함할 수 있고, 임의의 수의 이들 또는 기타 요소들을 포함하거나 이들로 나누어져 있을 수 있다. 스크린이 하나 이상의 템플릿들을 포함하고 템플릿이 하나 이상의 UI 구성요소들을 포함하도록, 사용자 인터페이스(22)의 요소들의 배열이 계층적일 수 있다. 다른 실시예들이 사용자 인터페이스 요소들을 임의의 계층적 또는 비계층적 구조로 배열할 수 있다는 것을 잘 알 것이다.
전자 장치(10)는 또한 부가의 장치들의 연결을 가능하게 하도록 다양한 입력 및 출력 포트(18)도 포함할 수 있다. 예를 들어, 포트(18)는 헤드폰의 연결을 제공하는 헤드폰 잭일 수 있다. 또한, 포트(18)는 헤드셋(예를 들어, 헤드폰/마이크 겸용)의 연결을 제공하기 위해 입력 기능/출력 기능 둘다를 가질 수 있다. 본 발명의 실시예들은, 헤드폰 및 헤드셋 잭, USB(universal serial bus) 포트, Firewire 또는 IEEE-1394 포트, 그리고 AC 및/또는 DC 전원 커넥터를 비롯한, 임의의 수의 입력 및/또는 출력 포트를 포함할 수 있다. 게다가, 장치(10)는 임의의 다른 장치, 예컨대 다른 휴대용 전자 장치, 개인용 컴퓨터, 프린터 등에 연결되어 그 장치와 데이터를 전송 또는 수신하기 위해 입력 및 출력 포트를 사용할 수 있다. 예를 들어, 일 실시예에서, 전자 장치(10)는, 미디어 파일과 같은 데이터 파일을 전송 및 수신하기 위해, Firewire 또는 IEEE-1394 연결을 통해 개인용 컴퓨터에 연결될 수 있다.
전자 장치(10)는 또한 다양한 오디오 입력 및 출력 부분도 포함할 수 있다. 예를 들어, 입력 수신기(20)는 사용자 오디오 입력을 수신하는 마이크일 수 있다. 또한, 출력 송신기(21)는 오디오 신호를 사용자로 전송하는 스피커일 수 있다. 입력 수신기(20) 및 출력 송신기(21)는 전화의 오디오 요소로서 함께 사용될 수 있다.
이제 도 2를 참조하면, 예시적인 전자 장치(10)의 구성요소들의 블록도(200)가 도시되어 있다. 블록도는 CPU(central processing unit)(204)에 연결되어 있는 DMA 제어기(202)를 포함하고 있다. CPU(204)는 하나의 프로세서를 포함할 수 있거나, 복수의 프로세서들을 포함할 수 있다. 다른 실시예에서, CPU(204)는 하나 이상의 "범용" 마이크로프로세서, 범용 마이크로프로세서와 전용 마이크로프로세서의 조합, 및/또는 ASIC을 포함할 수 있다. 예를 들어, CPU(204)는 하나 이상의 RISC(reduced instruction set) 프로세서는 물론, 그래픽 프로세서, 비디오 프로세서, 및/또는 관련 칩셋을 포함할 수 있다. CPU(204)는 장치(10)의 운영 체제, 프로그램, 사용자 인터페이스(22) 및 임의의 다른 기능들을 실행하는 데 필요한 처리 능력을 제공할 수 있다. CPU(204)는 또한 장치(10)의 운영 체제 및/또는 장치(10)가 동작하는 데 필요한 임의의 다른 프로그램 또는 실행가능 코드와 같은 장치(10)의 펌웨어를 저장하는 데 사용될 수 있는 ROM 등의 비휘발성 메모리를 포함할 수 있다.
CPU(204)는 CPU(204)에 의해 고속으로 액세스되어야 하는 데이터의 임시 저장 장소로서 사용될 수 있는 캐시 메모리(206)에 연결되어 있을 수 있다. 캐시 메모리(206)는 메인 메모리(210)와 캐시 메모리(206) 사이에서, 또는 데이터 및 명령어에 대한 요구가 긴급하거나 데이터 및 명령어가 캐시 메모리(206)에 일시적으로 저장되지 못하는 경우, 직접 메인 메모리(210)와 CPU(204) 사이에서 데이터 및 명령어의 흐름을 조절하는 메모리 제어기(208)에 연결되어 있을 수 있다. 일 실시예에서, DMA 제어기(202)와 메모리 제어기(208) 간의 데이터 및 명령어의 흐름이 캐시 메모리(206)의 내용을 확인하지 않고 행해진다. 다른 실시예에서, DMA 제어기(202)와 메모리 제어기(208) 간의 데이터 및 명령어의 흐름이 캐시 메모리(206)의 현재 내용을 확인한 후에 완수된다. 또 다른 실시예에서, DMA 제어기(202)가 CPU(204)에 직접 연결되어 있을 수 있다. 게다가, 메인 메모리(210)와 캐시 메모리(206)에 저장하기 위해 데이터에 액세스하는 것이 DMA 제어기(202)의 동작과 분리하여 보조 버스를 통해 수행될 수 있다.
DMA 제어기(202)는 I/O 장치들(예를 들어, USB 장치(218)와 오디오 회로(230)) 간의, 메인 메모리(210)와 I/O 장치(예를 들어, 오디오 회로(230)) 간의, 또는 I/O 장치(예를 들어, 오디오 회로(230))와 메인 메모리(210) 간의 데이터의 전송에 대한 제어 장치로서 동작할 수 있다. 그 개시 내용이 전체적으로 본 명세서에 참조되어 포함된, 2008년 3월 27일자로 출원된 발명의 명칭이 "Clock Control for DMA Busses(DMA 버스의 클록 제어)"인, 동시 계류 중인 공동 양도된 미국 특허 출원 제12/047,156호에 기술된 바와 같이, 이용되는 특정의 DMA 제어기(202)가 다른 기능들을 가질 수 있는 것이 생각된다. 이러한 기능들은 여기에 참조로 포함되어 있다. DMA 제어기(202)는 DMA 상호연결부(212)를 통해 DMA 버스(214)에 연결되어 있을 수 있다. DMA 상호연결부(212)는 데이터, 명령, 및 클록 신호를 전송하는 것은 물론 대상 I/O 장치로부터의 DMA 요청 신호 및 전송된 데이터를 수신하는 역할도 한다. 이러한 전송된 신호 및 수신된 신호를 모두 합하여 "DMA 전송 신호"라고 할 수 있다. DMA 상호연결부(212)는 또한 I/O 장치들로부터 DMA 버스(214)를 통해 전송된 명령 및 데이터 신호를 수신한다. DMA 버스(214)는 DMA 전송 신호와 I/O 장치들로부터의 명령 및 데이터 신호에 대한 통로로서 역할한다. DMA 버스(214)는 복수의 DMA 채널들을 포함할 수 있다. 각각의 DMA 채널은 DMA 제어기(202)를 임의의 특정의 I/O 장치에 연결시키는 경로일 수 있다. 일 실시예에서, 이러한 경로들이 동시에 활성일 수 있는데, 사실상 DMA 버스(214)를 공유할 수 있다.
DMA 버스(214)는 USB(Universal Serial Bus) 인터페이스(216)를 통한 USB 장치(218), 카메라 회로(220), 전화 회로(222), 비디오 회로(226), JPEG(Joint Photographic Experts Group) 회로(228), 및 오디오 회로(230)와 같은 복수의 장치들에 연결될 수 있다. 도 1에 도시된 요소들에 대응하는 사용자 인터페이스 회로 및 디스플레이 회로와 같은 부가의 회로도 역시 DMA 버스(214)에 연결될 수 있다. 게다가, 장기 메모리(224)도 DMA 버스(214)에 연결될 수 있다. 장기 메모리(224)는 플래쉬 메모리, 자기 드라이브, 광 드라이브, 또는 판독 전용 메모리 회로와 같은 비휘발성 메모리일 수 있다. 장기 메모리(224)는 미디어(예를 들어, 음악 및 비디오 파일)와 같은 데이터 파일들, 소프트웨어(예를 들어, 장치(10) 상에서 기능들을 구현함), 기본 설정 정보(예를 들어, 미디어 재생 기본 설정), 무선 연결 정보(예를 들어, 미디어 장치가 전화 연결 등의 무선 연결을 설정할 수 있도록 할 수 있는 정보), 가입 정보(예를 들어, 사용자가 가입한 팟캐스트 또는 텔레비전 프로그램 또는 기타 미디어의 기록을 유지하는 정보), 전화 정보(예를 들어, 전화 번호), 및 임의의 다른 적당한 데이터를 저장할 수 있다.
USB 인터페이스(216)는 USB 장치(218)에 연결될 수 있다. 이 USB 장치(218)는, 예를 들어, 외부 플래쉬 메모리 회로 또는 외장형 하드 디스크 드라이브일 수 있다. 카메라 회로(220)에 의해 사용자는 디지털 사진을 찍을 수 있다. 전화 회로(222)에 의해 사용자는 전화를 받거나 걸 수 있다. 일 실시예에서, 전화 회로(222)는 전화 통화를 완료하기 위해 도 1의 입력 수신기(20) 및 출력 송신기(21)와 상호작용할 수 있다. 비디오 회로(226)는 카메라 회로(220)와 관련하여 사용자가 찍거나 인터넷 등의 외부 소스로부터 다운로드된 비디오 샘플들을 인코딩 및 디코딩하는 데 사용될 수 있다. 유사하게, JPEG 회로(228)는 카메라 회로(220)와 관련하여 사용자가 찍거나 인터넷과 같은 외부 소스로부터 다운로드된 사진들을 인코딩 및 디코딩하는 것을 가능하게 할 수 있다. 마지막으로, 오디오 회로(230)는 압축된 음악 파일과 같은 오디오 파일을 재생하는 것을 가능하게 할 수 있다.
이제 도 3을 참조하면, 예시적인 전자 장치(10)의 구성요소들의 블록도가 도시되어 있다. 블록도는 CPU(304)에 연결되어 있는 DMA 제어기(302)를 포함하고 있다. CPU(304)는 하나의 프로세서를 포함할 수 있거나, 복수의 프로세서들을 포함할 수 있다. 다른 실시예에서, CPU(304)는 하나 이상의 "범용" 마이크로프로세서, 범용 마이크로프로세서와 전용 마이크로프로세서의 조합, 및/또는 ASIC을 포함할 수 있다. 예를 들어, CPU(304)는 하나 이상의 RISC(reduced instruction set) 프로세서는 물론, 그래픽 프로세서, 비디오 프로세서, 및/또는 관련 칩셋을 포함할 수 있다. CPU(304)는 장치(10)의 운영 체제, 프로그램, 사용자 인터페이스(22) 및 임의의 다른 기능들을 실행하는 데 필요한 처리 능력을 제공할 수 있다. CPU(304)는 또한 장치(10)의 운영 체제 및/또는 장치(10)가 동작하는 데 필요한 임의의 다른 프로그램 또는 실행가능 코드와 같은 장치(10)의 펌웨어를 저장하는 데 사용될 수 있는 ROM과 같은 비휘발성 메모리를 포함할 수 있다.
CPU는 CPU에 의해 고속으로 액세스되어야 하는 데이터의 임시 저장 장소로서 사용될 수 있는 캐시 메모리(306)에 연결되어 있을 수 있다. 캐시 메모리(306)는 메인 메모리(310)와 캐쉬 메모리(306) 간의 데이터 및 명령어의 흐름을 조절하는 메모리 제어기(308)에 연결되어 있을 수 있다. 게다가, 데이터 및 명령어에 대한 요구가 긴급하거나 데이터 및 명령어가 데이터 및 명령어가 캐시 메모리(306)에 일시적으로 저장되지 못하는 경우, 메모리 제어기(308)는 또한 직접 메인 메모리(310)와 CPU(304) 사이에서 데이터 및 명령어의 흐름을 조절할 수 있다. 일 실시예에서, DMA 제어기(302)와 메모리 제어기(308) 간의 데이터 및 명령어의 흐름이 캐시 메모리(306)의 내용을 확인하지 않고 행해진다. 다른 실시예에서, DMA 제어기(302)와 메모리 제어기(308) 간의 데이터 및 명령어의 흐름이 캐시 메모리(306)의 현재 내용을 확인한 후에 완수된다. 또 다른 실시예에서, DMA 제어기(302)가 CPU(304)에 직접 연결되어 있을 수 있다. 게다가, 메인 메모리(310)와 캐시 메모리(306)에 저장하기 위해 데이터에 액세스하는 것이 DMA 제어기(302)의 동작과 분리하여 보조 버스를 통해 수행될 수 있다.
DMA 제어기(302)는 I/O 장치들, 예를 들어 USB 장치(318)와 오디오 회로(330) 간의, 메인 메모리(310)와 I/O 장치, 예를 들어, 오디오 회로(330) 간의, 또는 I/O 장치, 예를 들어 오디오 회로(330)와 메인 메모리(310) 간의 데이터의 전송에 대한 제어 장치로서 동작할 수 있다. 각각의 DMA 채널은 DMA 제어기(302)를 임의의 특정의 I/O 장치에 연결시키는 경로일 수 있다. DMA 제어기(302)는 복수의 독립적인 DMA 채널들, 예를 들어, 독립적인 DMA 채널 라인(312)을 따라 복수의 I/O 장치들에 연결될 수 있다. 독립적인 DMA 채널 라인(312)은 I/O 장치와의 특정의 DMA 경로를 나타낸다. 독립적인 DMA 채널 라인(312)은 USB 인터페이스(316)를 통해 데이터, 명령, 및 클록 신호를 DMA 제어기(302)로부터 USB 장치(318)로 전송하는 데 사용될 수 있다. 이 USB 장치(318)는, 예를 들어, 외부 플래쉬 메모리 회로 또는 외장형 하드 디스크 드라이브일 수 있다. 독립적인 DMA 채널 라인(312)은 또한 DMA 요청 신호 및 데이터를 I/O 장치(예를 들어, USB 인터페이스(316)를 통한 USB 장치(318))로부터 DMA 제어기(302)로 전송하는 데 사용될 수 있다.
DMA 제어기(302)는 또한 독립적인 DMA 채널 라인들을 따라 카메라 회로(320), 전화 회로(322), 비디오 회로(326), JPEG 회로(328) 및 오디오 회로(330)와 같은 복수의 장치들에 연결되어 있을 수 있다. 도 1에 도시된 요소들에 대응하는 사용자 인터페이스 회로 및 디스플레이 회로와 같은 부가의 회로도 역시 DMA 제어기(302)에 연결될 수 있다. 카메라 회로(320)에 의해 사용자는 디지털 사진을 찍을 수 있다. 전화 회로(322)에 의해 사용자는 전화를 받거나 걸 수 있다. 일 실시예에서, 전화 회로(22)는 전화 통화를 완료하기 위해 도 1의 입력 수신기(20) 및 출력 송신기(21)와 상호작용할 수 있다. 비디오 회로(326)는 카메라 회로(320)와 관련하여 사용자가 찍거나 인터넷과 같은 외부 소스로부터 다운로드된 비디오 샘플들을 인코딩 및 디코딩하는 데 사용될 수 있다. 유사하게, JPEG 회로(228)는 카메라 회로(320)와 관련하여 사용자가 찍거나 인터넷과 같은 외부 소스로부터 다운로드된 사진들을 인코딩 및 디코딩하는 것을 가능하게 할 수 있다. 오디오 회로(330)는 압축된 음악 파일 등의 오디오 파일을 재생하는 것을 가능하게 할 수 있다.
유사하게, 독립적인 DMA 채널 라인(314)은 장기 메모리(324)에 연결된 DMA 채널을 나타낸다. 독립적인 DMA 채널 라인(314)은 데이터, 명령, 및 클록 신호를 DMA 제어기(302)로부터 장기 메모리(324)로 전송하는 데 사용될 수 있다. 장기 메모리(324)는 플래쉬 메모리, 자기 드라이브, 광 드라이브, 또는 판독 전용 메모리 회로와 같은 비휘발성 메모리일 수 있다. 장기 메모리(324)는 미디어(예를 들어, 음악 및 비디오 파일)와 같은 데이터 파일들, 소프트웨어(예를 들어, 장치(10) 상에서 기능들을 구현함), 기본 설정 정보(예를 들어, 미디어 재생 기본 설정), 무선 연결 정보(예를 들어, 미디어 장치가 전화 연결 등의 무선 연결을 설정할 수 있도록 할 수 있는 정보), 가입 정보(예를 들어, 사용자가 가입한 팟캐스트 또는 텔레비전 프로그램 또는 기타 미디어의 기록을 유지하는 정보), 전화 정보(예를 들어, 전화 번호), 및 임의의 다른 적당한 데이터를 저장할 수 있다. 독립적인 DMA 채널 라인(314)은 또한 DMA 요청 신호 및 데이터를 장기 메모리(324)로부터 DMA 제어기(302)로 전송하는 데 사용될 수 있다.
도 4는 본 발명의 일 실시예에 따른, DMA 전송을 나타낸 방법(400)을 나타내는 흐름도이다. 도 3에 간략히 기술된 시스템과 관련하여 이 단계들에 대해 먼저 기술할 것이다. 단계(402)에서, DMA 제어기(302)는 요청측 장치, 예를 들어, 오디오 회로(330)로부터 데이터 전송 요청을 수신한다. DMA 제어기는 요청된 데이터의 위치를 확인한다. 이 위치가 대상 장치이다. 이 대상 장치는, 예를 들어, 장기 메모리(324)일 수 있다. DMA 제어기(302)는 요청측 장치, 예를 들어 오디오 회로(330)에 대응하는 독립적인 DMA 채널 라인(312) 및 대상 장치, 예를 들어 장기 메모리(324)에 대응하는 독립적인 DMA 채널 라인(314)을 따라 DMA 채널 클록을 활성화시킬 수 있다. DMA 제어기(302)는 이어서 독립적인 DMA 채널 라인(314)을 따라 채널 클록 및 DMA 명령 신호를 대상 장치로 전송함으로써 대상 장치로부터의 DMA 전송을 시작할 수 있다.
단계(404)에서, 대상 장치는 DMA 채널 클록 및 명령 신호를 수신하고 요청된 데이터를 DMA 제어기(302)로 전송한다. DMA 제어기(302)는 이 전송된 데이터를 수신하고, 그 후에, 단계(406)에서, 전송된 데이터를 중간 매체 상에 먼저 저장하는 일이 없이, 전송된 데이터가 DMA 제어기(302)에서 변환된다.
일 실시예에서, 단계(406)에서의 데이터의 변환은 DMA 제어기(302)에 포함된 암호화 회로를 사용하여 완수된다. 암호화 회로는 DMA 전송된 데이터를 복호화하기 위해 복호화 기술들을 이용할 수 있다. 이러한 방식으로, 데이터가 요청측 장치로 보내지기 전에 어느 곳에서라도 보호되지 않은 채로 존재하지 않기 때문에, 데이터가 불법 사용자에 의해 해킹될 기회가 감소된다. 예를 들어, 장기 메모리(324)가 대상 장치이고 오디오 회로(330)가 요청측 장치인 경우, 복호화 회로는 데이터를 장기 저장 장치(324)로부터 메인 메모리(310) 내의 임시 버퍼로 복사하게 되고, 이어서 메인 메모리(310) 내의 임시 버퍼로부터의 데이터를 복호화하여 메인 메모리(310) 내의 제2 버퍼에 넣는다. 마지막으로, 복호화 회로는 이어서 복호화된 데이터를 메인 메모리 내의 제2 버퍼로부터 오디오 회로(330)로 복사하게 된다. 이것은 데이터가 메인 메모리(310) 내의 임시 버퍼에 비암호화된 형식으로 일시적으로 노출된 채로 놔두게 된다. 본 방법(400)을 사용하면, 액세스될 데이터가 결코 비암호화된 형식으로 노출되지 않는다. 그 대신에, 전송된 데이터를 중간 매체 상에 먼저 저장하는 일 없이 DMA 제어기(302)에서 데이터를 복호화하는 것에 의해, 전송될 데이터를 비암호화된 형식으로 일시 저장하는 일이 없이 단계(408)에서 복호화된 데이터가 직접 오디오 회로(330)로 전송될 수 있다. 암호화 회로는 또한 그 데이터를 전자 장치(10)에 안전하게 저장하기 위해 데이터를 암호화하는 암호화 기술들을 포함할 수 있다. 일 실시예에서, 암호화 회로는 AES(Advanced Encryption Standard) 호환 회로를 포함한다. 또 다른 실시예에서, 암호화 회로에서 해시 함수가 이용될 수 있다. 다른 실시예에서, FairPlay® 암호화된 데이터를 복호화하는 데 암호화 회로가 사용될 수 있다. 전송된 데이터를 암호화 또는 복호화 기술들을 통해 변환할 때에, 단계(408)에서 변환된 데이터가 요청측 장치로 전송된다.
다른 실시예에서, 단계(406)에서의 데이터의 변환은 DMA 제어기(302)에 포함된 오류 검출 및 정정 회로를 사용하여 완수된다. 오류 검출 및 정정 회로는 오류 정정 및 검출 디코딩 회로를 이용할 수 있다. 정정 및 검출 디코딩 회로는 DMA 전송된 데이터에서 오류를 검출하여 정정하기 위해 오류 정정 코드를 이용할 수 있다. 오류 검출 및 정정 회로는 또한, DMA 제어기(302)가 전자 장치에 저장하기 위한 데이터를 인코딩하여 그 데이터의 오류 정정 검색을 도울 수 있도록 하는 오류 검출 및 정정 인코딩 회로도 포함할 수 있다. 일 실시예에서, 오류 검출 및 정정 회로는 선형 블록 인코딩 및 디코딩을 사용한다. 또 다른 실시예는 오류 검출 및 정정 회로에서 오류 검출 및 정정을 수행하는 데 해밍(Hamming) 코드와 같은 특별한 이진 BCH 코드의 하위 부류를 이용한다. 다른 실시예는 오류 검출 및 정정 회로에서 데이터의 오류 검출 및 정정을 수행하는 데 리드-솔로몬(Reed-Solomon) 코드와 같은 비이진 BCH 코드를 이용한다. 오류 검출 및 정정 회로는 또한 전송된 데이터에서 오류를 검출하는 데 체크섬(checksum)도 이용할 수 있다. 전송된 데이터를 오류 인코딩 또는 디코딩 기술들을 통해 변환할 때에, 단계(408)에서 변환된 데이터가 요청측 장치로 전송된다.
방법(400)은 시스템(200)에 대해 실질적으로 유사한 방식으로 동작할 수 있다. 그러나, 방법(400)은, 시스템(200)과 관련하여 사용될 때, 상기한 바와 같이, 전용의 독립적인 DMA 채널 라인들(예를 들어, 채널 라인들(312 및 314))을 이용하는 대신에, 단계들(402-412)을 수행하는 데 DMA 버스(214)를 이용할 수 있다.
도 5는 본 발명의 일 실시예에 따른, 도 2 및 도 3의 DMA 제어기의 간략화된 블록도이다. DMA 제어기(202)가 도 5에 도시되어 있지만, 도 5는 또한 대안으로서 DMA 제어기(302)에 대응할 수도 있다. DMA 제어기(202)는 제어 회로(502)를 포함한다. DMA 제어기(202)는, 제어 회로(502)를 이용하여, DMA 전송을 초기화하고, 모든 DMA 채널들을 관리하며, DMA 채널 클록은 물론 DMA 버스(214)를 관리할 수 있다. DMA 제어기(202)가 DMA 버스(214)의 마스터이기 때문에, DMA 제어기(202)는 제어 회로(502)를 통해 이러한 기능들을 수행할 수 있다. 유사하게, DMA 제어기(302)는 독립적인 DMA 채널 라인들, 예를 들어 312 및 314의 마스터이다. 따라서, DMA 제어기(202)는 DMA 버스(214)를 이용하는 모든 장치들을 인식하고, 이러한 지식에 기초하여 특정의 DMA 전송 특성들을 확인할 수 있다. 유사하게, DMA 제어기(302)는 독립적인 DMA 채널 라인들, 예를 들어 312 및 314를 이용하는 모든 장치들을 인식하고, 이러한 지식에 기초하여 특정의 DMA 전송 특성들을 확인할 수 있다.
스케줄러(504)는 장치들이 DMA 버스(214) 또는 독립적인 DMA 채널 라인들, 예를 들어 312 및 314를 이용하는 때를 판정하는 것을 돕는다. 제어 회로(502)는 스케줄러(504)로부터 전송 장치 DMA 요청에 관한 정보를 수신한다. 일 실시예에서, 스케줄러(504)는 제어 회로(502) 내부에 존재할 수 있다. 다른 실시예에서, 임의의 DMA 요청이 각각의 독립적인 DMA 채널 라인, 예를 들어, 312를 따라 전송되고 지정된 DMA 채널 인터페이스, 예를 들어 510을 통해 스케줄러(504)로 전달된다. 스케줄러(504)는 데이터 전송에 대한 어느 DMA 요청에 우선순위를 부여할 것인지를 결정하는 동작을 한다. 일 실시예에서, 이 요청들은 FIFO(first-in-first-out) 방법을 통해 처리된다. 다른 실시예에서, 각각의 채널에 가중치가 부여된다. 특정의 DMA 채널에 할당된 가중치가 높을수록, 특정의 DMA 전송을 위해 그 채널이 받는 스케줄링 우선순위가 높다.
DMA 제어기는 또한 변환기(508)도 포함한다. 변환기(508)는 암호화 회로를 포함할 수 있다. 변환기(508)는 또한 오류 검출 및 정정 회로도 포함할 수 있다. 변환기(508)는 DMA 인터페이스들(510-514)로부터 데이터를 수신하고, 전송된 데이터를 중간 매체 상에 먼저 저장하는 일이 없이, 이 데이터를 변환할 수 있다. 이 변환이 완료되면, 변환기(508)는 변환된 데이터를 그 데이터가 나왔던 DMA 인터페이스(510-514)로 다시 전송할 수 있다. 제어 회로(502)는 변환기(508)와 상호작용할 수 있다. 이 상호작용은 변환기(508) 내의 암호화 및 복호화 회로의 활성화를 포함할 수 있다. 이 상호작용은 또한 변환기(508) 내의 인코딩 또는 디코딩 회로의 활성화도 포함할 수 있다.
DMA 채널 클록 및 DMA 명령 신호가 지정된 DMA 채널 인터페이스, 예를 들어 DMA 채널 인터페이스(510)에의 입력으로서 전송될 수 있다. DMA 인터페이스들(510-514)은 또한 변환기(508)로부터 신호들을 수신할 수 있다. 일 실시예에서, 변환기(508)로부터 수신된 신호들은 변환된 데이터 신호들을 포함한다. DMA 인터페이스들(510-514)은 또한 신호들을 제어 회로(502)로 그리고 변환기(508)로 전송할 수 있다. 일 실시예에서, 변환기(508)로 전송된 신호들은 대상 장치로부터 전송된 데이터 신호들을 포함한다. DMA 인터페이스들(510-514)은 또한 독립적인 DMA 채널 라인, 예를 들어 312를 따라 데이터를 전송 및 수신할 수 있다. DMA 인터페이스들(510-514)은 또한 DMA 채널을 따라 공유 라인, 예컨대 DMA 상호연결부(212) 상의 대상 장치로 데이터를 전송 및 수신할 수 있다. 일 실시예에서, 모든 DMA 채널에 대응하는 특정의 DMA 채널 인터페이스가 존재한다.
도 6은 본 발명의 일 실시예에 따른, DMA 전송을 나타낸 방법(600)을 나타내는 흐름도이다. 도 5에 간략히 기술된 시스템과 관련하여 이 단계들에 대해 먼저 기술할 것이다. 단계(602)에서, 스케줄러(504)는 요청측 장치, 예를 들어 오디오 회로(330)로부터 DMA 전송 요청을 수신한다. 스케줄러(504)는 또한 단계(602)에서 2차 DMA 요청을 수신할 수 있다.
단계(604)에서, 스케줄러(504)는 DMA 전송을 스케줄링할 수 있다. 일 실시예에서, 이것은 FIFO(first-in-first-out) 방식을 사용하여 행해질 수 있다. 즉, DMA 전송들이 스케줄러(504)에 의해 수신되는 순서에 따라 스케줄링될 수 있다. 제2 실시예에서, 스케줄러(504)는 순위 결정 시스템에 기초하여 수신된 DMA 전송 요청들을 스케줄링할 수 있다. 이 실시예에서, 각각의 요청측 장치에 우선순위(priority ranking)가 할당된다. 높은 우선순위를 갖는 장치의 DMA 전송 요청이 낮은 우선순위 장치의 DMA 전송 요청보다 먼저 스케줄링될 것이다. 높은 우선순위 DMA 전송 요청보다 낮은 우선순위를 갖는 모든 DMA 전송 요청들은 그들 각자의 우선순위에 따라 큐잉될 것이다. 다른 실시예에서, 소정의 우선순위를 갖는 DMA 전송 요청들은 스케줄러(504)로 하여금 현재 처리 중인 임의의 DMA 전송을 중단시키게 한다. 이러한 방식으로, 실시간으로 행해져야만 하는 DMA 전송들이 예정대로 완료될 수 있다.
스케줄러(504)가 어느 DMA 전송 요청이 처리되어야 하는지를 결정한 경우, 적절한 DMA 전송 요청 정보가 제어 회로(502)로 보내진다. 일 실시예에서, 이 정보는 대상 장치 정보 및 검색될 데이터를 포함할 수 있다. 제어 회로(502)는 이어서 단계(606)에서 적절한 DMA 채널 인터페이스에 액세스하기 위해 이 정보를 이용할 수 있다. 단계(606)의 일 실시예에서, 제어 회로(502)는 수신될 데이터의 위치를 확인하고 대응하는 DMA 채널 인터페이스(예를 들어, 510)를 활성화시킨다. 그 후에, 제어 회로(502)는 활성화 신호를 변환기(508)로 보낼 수 있다. 이러한 활성화 신호들이 변환기(508)를 활성화시킬 수 있다. 변환기(508)의 활성화는 변환기(508)에서 오류 검출 및 정정 인코딩 회로를 인에이블시키는 것, 오류 검출 및 정정 디코딩 회로를 인에이블시키는 것, 암호화 회로를 인에이블시키는 것, 또는 복호화 회로를 인에이블시키는 것을 포함할 수 있다.
채널 클록을 수신하는 것에 부가하여, 선택된 DMA 인터페이스, 예를 들어 510은 제어 회로(502)로부터 DMA 명령 신호를 수신할 수 있다. 단계(608)에서, 선택된 DMA 인터페이스, 예를 들어, 510은 DMA 전송 명령 및 DMA 채널 클록을 DMA 채널을 따라 독립적인 DMA 채널 라인, 예컨대 312 상의 대상 장치로 전송할 수 있다. 선택된 DMA 인터페이스, 예를 들어 510은 또한 DMA 전송 명령 및 채널 클록을 DMA 채널을 따라 공유 라인, 예컨대 공유 DMA 버스(214)에 대한 DMA 상호연결부(212)(도 2) 상의 대상 장치로 전송할 수 있다.
대상 장치, 예를 들어 318은 DMA 전송 정보를 수신하고, 그에 응답하여, 요청된 데이터를 다시 시작측 DMA 채널 인터페이스, 예를 들어 510으로 전송한다. 단계(610)에서, 대상 장치로부터 전송된 데이터가 선택된 채널 인터페이스, 예를 들어 510에 의해 수신된다. 데이터가 수신되면, 제어 회로(502)는 대상 장치로부터의 수신된 데이터를 변환기(508)로 보내라고 채널 인터페이스, 예를 들어 510에 명령을 내릴 수 있다. 단계(612)에서, DMA 채널 인터페이스, 예를 들어 510은 대상 장치로부터 수신된 데이터를 변환기(508)로 전송한다.
변환기(508)는 전송측 DMA 인터페이스들, 예를 들어 510으로부터 데이터를 수신하고, 단계(614)에서, 변환기(508)는, 전송된 데이터를 중간 매체 상에 먼저 저장하는 일이 없이, 데이터를 변환한다. 이 변환은 데이터의 오류 검출 및 정정 인코딩, 데이터의 오류 검출 및 정정 디코딩, 데이터의 암호화, 또는 데이터의 복호화를 포함할 수 있다. 일 실시예에서, 변환은 AES(Advanced Encryption Standard) 암호화 기술들을 이용한다. 또 다른 실시예에서, 데이터를 암호화 또는 복호화할 때 해시 함수가 이용될 수 있다. 다른 실시예에서, 변환기(508)는 FairPlay® 복호화 기술들에 따라 데이터를 변환할 수 있다. 변환기(508)는 또한 선형 블록 인코딩 및 디코딩, 이진 BCH 코드(해밍 코드 등), 비이진 BCH 코드(리드-솔로몬 코드), 또는 체크섬을 이용하는 인코딩 및 디코딩 기술들을 통해 데이터를 변환할 수 있다.
변환이 완료되면, 단계(616)에서, 변환기(508)는 변환된 데이터를 다시 데이터가 나왔던 특정의 DMA 인터페이스, 예를 들어 510으로 보낼 수 있고, 그에 의해 변환된 데이터가 요청측 장치로 전송된다.
요청된 데이터 중 마지막이 요청측 장치로 전송된 경우, 제어 회로(502)는 단계(618)에서 스케줄러가 비어 있는지를 판정한다. 즉, 제어 회로(502)는 스케줄러가 그의 큐에 어떤 스케쥴링된 DMA 전송들이 남아 있는지를 판정한다. 스케줄링된 DMA 전송들이 스케줄러 큐에 존재하는 경우, 도 6에서 단계(618)로부터 다시 단계(604)와 단계(606) 사이의 흐름도(600)로 가는 화살표로 나타낸 바와 같이, 상기한 프로세스가 반복된다. 스케줄러가 비어 있는 경우, 제어 회로(502)는 비활성화 신호를 변환기(508)로 보낸다. 단계(620)에서, 이 비활성화 신호는 변환기(508)는 물론 데이터 전송에서 사용되는 연관된 DMA 채널들을 비활성화시킬 수 있다.
도 7은 본 발명의 일 실시예에 따른, 도 5의 DMA 채널 인터페이스(510)의 간략화된 블록도이다. 일 실시예에서, DMA 채널을 구성하고 제어하는 데 채널 제어 논리(702)가 사용된다. 예를 들어, 채널 제어 논리(702)는 임의의 주어진 때에 연관된 DMA 채널을 비활성화시킴으로써, 현재 진행 중인 DMA 전송을 중단시킬 수 있다. 다른 실시예에서, DMA 채널의 상태를 보고하는 데 채널 제어 논리(702)가 사용된다. 예를 들어, DMA 채널이 사용되고 있는 동안 오류가 발생한 경우, 또는 DMA 채널의 사용 중에 중단이 발생한 경우, 채널 제어 논리(702)는 현재의 전송을 중단하고, 장애를 로그 및 보고할 수 있다. 채널 제어 논리(702)는 클록 라인(714)을 따라 채널 클록을 수신할 수 있다. 채널 제어 논리(702)는 데이터 라인(716)을 통해 데이터를 전송하기도 수신하기도 할 수 있다. 게다가, 채널 제어 논리(702)는 또한 명령 라인(706)을 따라 DMA 명령 신호를 수신할 수 있다.
다음 DMA 명령 레지스터(704)로부터 명령 라인(706)을 통해 채널 제어 논리(702)로 DMA 명령 신호가 보내진다. 다음 DMA 명령 레지스터(704)는 채널 제어 논리(702)로 보내져야 하는 DMA 명령들에 대한 큐로서 역할할 수 있다. 이러한 DMA 명령들은 DMA 제어기(202)가 대상 장치로부터 읽게 될 데이터의 주소를 포함할 수 있다. DMA 명령들은 또한 DMA 제어기(202)가 요청측 장치에 기입하게 될 데이터의 주소도 포함할 수 있다. DMA 명령들은 또한 채널 제어 논리(702)에 대한 중지 명령 또는 시작 명령도 포함할 수 있다.
DMA 명령이 실행되었을 때, 다음 DMA 명령 레지스터(704)에 위치하는 큐에 있는 그 다음 명령이 명령 라인(706)을 따라 채널 제어 논리(702)로 보내진다. 명령 라인(706)은 현재 DMA 명령 레지스터(708)에 의해 모니터링된다. 현재 DMA 명령 레지스터(706)는 실행 중인 현재 DMA 명령의 사본을 저장할 수 있다. 이 정보는, 예를 들어, 어떤 이유로 DMA 전송이 중단된 경우에 사용될 수 있다. 제어 회로(502)는 중단이 일어났을 때 진행 중이었던 전송을 확인하기 위해 현재 DMA 명령 레지스터(708)에 액세스할 수 있다. 마찬가지로, 전송 레지스터(710)는 DMA 전송 동안에 전달되는 데이터에 액세스할 수 있다. 예를 들어, 전송 레지스터(710)는 중단이 일어나기 전에 DMA 제어기(202)에 의해 실제로 몇 바이트가 전달되었는지를 확인할 수 있다. 이것에 의해 제어 회로(502)는 얼마만큼의 데이터가 대상 장치로부터 요청측 장치로 성공적으로 이동되었는지를 확인할 수 있다.
DMA 채널 인터페이스(510)는 또한 I/O 장치 레지스터(712)도 포함하고 있다. I/O 장치 레지스터(712)는 어떤 I/O 장치 제어 정보를 포함하고 있을 수 있다. 예를 들어, I/O 장치 레지스터(712)는 I/O 장치가 전달하거나 받을 수 있는 데이터의 폭에 관한 정보를 포함하고 있을 수 있다. 이 정보는 DMA 채널을 통해 전달될 수 있는 바이트의 수를 확인하는 데 유용할 수 있다. I/O 장치 레지스터(712)는 또한 지정된 I/O 장치에서 DMA 채널을 따라 DMA 전달을 하는 데 필요한 최소 채널 클록 주파수에 관한 정보를 포함할 수 있다. 이 정보는 클록 관리자(512)에서의 DMA 클록 주파수를 설정하는 데 제어 회로(502)에 의해 사용될 수 있다.
데이터 라인(716)은 데이터가 지나가는 링 버퍼(718)에 연결되어 있다. 이러한 방식으로, 데이터가 채널 제어 논리(702)를 통해 대상 장치로부터 링 버퍼(718)로 전달되고, 링 버퍼(718)로부터 요청측 장치로 전송된다. 링 버퍼(718)는 전체 캐시 라인이 들어갈 수 있을 정도로 충분히 클 수 있다. 일 실시예에서, 링 버퍼는 크기가 32 또는 64 바이트일 수 있다. 다른 실시예에서, 링 버퍼(718)는 I/O 장치들 중 임의의 것에 의해 전송가능한 최대 데이터 패킷만큼 크다. 또 다른 실시예에서, 링 버퍼(718)가 파티션될 수 있다. 예를 들어, 링 버퍼(718)가 사전-변환된 데이터(pre-transformed data)의 하나 이상의 블록을 보유할 수 있는 제1 파티션을 포함할 수 있다. 제2 파티션도 유사하게 사후-변환된 데이터(post-transformed data)의 블록들을 보유할 수 있다. 파티션들은 변환기(508)의 요구에 따라 크기가 정해질 수 있다. 예를 들어, AES(Advanced Encryption Standard) 암호화 회로는 데이터가 16 바이트 블록 단위로 그에게로 전송될 것을 요구한다. 그에 따라, 링 버퍼(718)의 파티션들은 변환기(508) 내의 변환 회로의 요구사항들을 수용하도록 만들어질 수 있다.
링 버퍼(718)는 수신된 데이터 라인(722) 및 변환된 데이터 라인(724)을 통해 변환기(508)에 결합될 수 있다. 일 실시예에서, 수신된 데이터 라인(722)은 링 버퍼(718)의 제1 파티션에 결합될 수 있는 반면, 변환된 데이터 라인(724)은 링 버퍼의 제2 파티션에 결합될 수 있다. 또 다른 실시예에서, 독립적인 단방향 수신된 데이터 라인(722)과 변환된 데이터 라인(724) 대신에, 하나의 양방향 버스가 사용될 수 있다. 링 버퍼 상태 레지스터(720)는 또한 얼마만큼의 데이터가 링 버퍼(718)에 있는지를 확인하는 데 이용될 수 있다. 이것에 의해, 예를 들어, DMA 전송이 중단된 경우에 얼마만큼의 데이터가 링 버퍼(718) 밖으로 전송되었는지를 확인할 수 있다.
도 8은 DMA 전송을 지시한 후에 채널 제어 논리(702)의 동작을 나타낸 흐름도(800)이다. 단계(802)에서, 채널 제어 논리(702)는 대상 장치로부터 요청된 데이터를 수신한다. 단계(804)에서, 데이터가 채널 제어 논리(702)로부터 링 버퍼(718)로 전송된다. 일 실시예에서, 이 전송은 요청측 장치에 적절한 크기로 요청측 장치로 전송될 수 있도록 데이터를 큐잉하는 것이다. 다른 실시예에서, 이 전송은 변환기(508)에 적절한 크기로 변환기(508)로 전송될 수 있도록 데이터를 큐잉하는 것이다. 예를 들어, 전송 장치가 데이터를 8 바이트 블록으로 전송하고 변환기(508)가 적절한 동작을 위해 데이터가 16 바이트 블록으로 수신되어야 할 것을 요구하는 경우, 링 버퍼(718)는 채널 제어 논리(702)로 전송된 2개의 8 바이트 데이터 블록으로부터 하나의 16 바이트 데이터 블록을 형성하는 데 사용될 수 있다.
단계(806)에서, 채널 제어 논리(702)는 링 버퍼(718)가 채워져 있는지를 판정한다. 일 실시예에서, 링 버퍼(718)에 어떤 다른 데이터도 들어갈 수 없을 때, 링 버퍼(718)가 채워져 있다. 제2 실시예에서, 변환기(508)가 수신하기에 적절한 크기로 데이터가 형성되어 있을 때, 링 버퍼(718)가 채워져 있다. 다른 실시예에서, 사전-변환된 데이터를 보유할 수 있는 제1 파티션이 채워져 있을 때에만, 링 버퍼(718)가 채워져 있다. 링 버퍼(718)가 채워져 있을 때, 단계(808)에서 채널 제어 논리(702)는 링 버퍼링된 데이터를 변환기(508)로 전송한다. 링 버퍼링된 데이터의 전송은 수신된 데이터 라인(722)을 따라 행해질 수 있다. 그러나, 링 버퍼(718)가 채워져 있지 않은 경우, 단계(810)에서 채널 제어 논리(702)는 대상 장치로부터의 전송이 완료되었는지를 판정한다. 대상 장치로부터의 전송이 완료된 경우, 단계(808)에서 링 버퍼(718)는 링 버퍼링된 데이터를 변환기(508)로 전송한다. 그러나, 대상 장치로부터의 전송이 완료되지 않은 경우, 채널 제어 논리(702)는 단계(802)에서 시작하여 흐름도(800)에서 앞서 간략히 기술한 단계들을 반복한다.
단계(808)에서 데이터가 링 버퍼(718)에 의해 변환기(508)로 전송된 후에, 단계(810)에서 변환기(508)는 수신된 데이터를 변환할 수 있다. 이 변환은 암호화 또는 복호화 동작에서 사용되는 알고리즘 및 키를 지정하는 레지스터들을 사용하여 달성될 수 있다. 유사하게, 변환기 내의 레지스터들은 데이터의 인코딩 또는 디코딩에서 사용되는 오류 정정 코드를 지정할 수 있다. 암호화 구성에서, 변환기(508)는 또한 암호화 회로에서 사용하기 위한 초기화 벡터들을 보유할 수 있는 레지스터들을 포함할 수 있다. 이 레지스터들은 또한 암호화 회로에서 사용되는 N-바이트 키를 보유할 수 있다. 일 실시예에서, 이러한 키들은 대칭키 유형일 수 있다. 다른 실시예에서, 이러한 키들은 비대칭 (공개)키 유형일 수 있다.
단계(810)에서 데이터가 변환기(508)에 의해 변환되면, 단계(812)에서 변환기는 변환된 데이터를 링 버퍼(718)로 전송한다. 변환된 데이터는 변환된 데이터 라인(724)을 따라 전송될 수 있다. 일 실시예에서, 이 전송은 변환된 데이터가 요청측 장치에 적절한 크기로 요청측 장치로 전송될 수 있도록 데이터를 링 버퍼(718)에 큐잉하는 것이다. 예를 들어, 변환기(508)가 데이터를 16 바이트 블록으로 전송하고 요청측 장치가 32 바이트 블록으로 데이터를 읽는 경우, 링 버퍼(718)는 2개의 16 바이트의 변환된 데이터 블록으로부터 하나의 32 바이트 데이터 블록을 형성하는 데 사용될 수 있다. 링 버퍼(718)에 큐잉된 데이터 크기가 요청측 장치로 전송하기에 적절한 크기일 때, 단계(814)에서 채널 제어 논리(702)는 변환된 데이터를 요청측 장치로 전송한다. 일 실시예에서, 단계(814)가 완료된 후에 요청측 장치로 전송할 데이터가 더 있는 경우, 채널 제어 논리(702)는 단계(802)에서 시작하여 흐름도(800)에 간략히 기술된 단계들을 반복한다.
본 발명에 대해 다양한 수정 및 대안의 형태들이 가능할 수 있지만, 특정의 실시예들이 예로서 도면들에 도시되어 있고 본 명세서에 상세히 기술되어 있다. 그러나, 본 발명이 개시된 특정의 형태로 제한되어서는 안 된다는 것을 잘 알 것이다. 오히려, 본 발명은 이하의 첨부된 특허청구범위에 의해 한정되는 본 발명의 사상 및 범위 내에 속하는 모든 수정들, 등가물들 및 대안들을 포괄하는 것이다.

Claims (14)

  1. DMA(direct memory access) 제어기로서,
    장치 제어 정보를 수신하고 또한 DMA 전송 신호들을 발생하도록 구성된 제어 회로;
    DMA 전송된 데이터를 수신하고 상기 DMA 전송된 데이터를 변환된 데이터로 변환하도록 구성된 변환기(converter); 및
    상기 DMA 전송 신호들 및 상기 변환된 데이터를 수신하도록 구성된 복수의 DMA 채널 인터페이스 회로들
    을 포함하는 DMA 제어기.
  2. 제1항에 있어서, 상기 변환기가 암호화 회로를 사용하여 상기 DMA 전송된 데이터를 암호화하여 상기 DMA 전송된 데이터를 변환된 데이터로 변환하도록 구성된 DMA 제어기.
  3. 제2항에 있어서, 상기 암호화 회로가 AES(Advanced Encryption Standard) 준수 회로를 포함하는 DMA 제어기.
  4. 제1항에 있어서, 상기 변환기가 암호화 회로를 사용하여 상기 DMA 전송된 데이터를 복호화(decrypt)하여 상기 DMA 전송된 데이터를 변환된 데이터로 변환하도록 구성된 DMA 제어기.
  5. 제4항에 있어서, 상기 암호화 회로가 AES(Advanced Encryption Standard) 준수 회로를 포함하는 DMA 제어기.
  6. 제1항에 있어서, 상기 변환기가 오류 검출 및 정정 회로를 사용하여 상기 DMA 전송된 데이터를 인코딩하여 상기 DMA 전송된 데이터를 변환된 데이터로 변환하도록 구성된 DMA 제어기.
  7. 제1항에 있어서, 상기 변환기가 오류 검출 및 정정 회로를 사용하여 상기 DMA 전송된 데이터를 디코딩하여 상기 DMA 전송된 데이터를 변환된 데이터로 변환하도록 구성된 DMA 제어기.
  8. 제1항에 있어서, 상기 변환기가 체크섬을 사용하여 상기 DMA 전송된 데이터를 변환된 데이터로 변환하도록 구성된 DMA 제어기.
  9. DMA 제어기를 이용하여 데이터를 변환하는 방법으로서,
    대상 장치(target device)로부터 DMA 전송된 데이터를 수신하는 단계;
    상기 DMA 제어기에서 상기 DMA 전송된 데이터를 변환된 데이터로 변환하는 단계; 및
    상기 변환된 데이터를 요청측 장치로 전송하는 단계
    를 포함하는 데이터 변환 방법.
  10. 제9항에 있어서, 상기 DMA 전송된 데이터를 변환하는 단계는 상기 전송된 데이터를 중간 매체에 먼저 저장하는 일이 없이 수행되는 데이터 변환 방법.
  11. 제9항에 있어서, DMA 채널이 사용 중인 동안 오류가 발생한 경우 상기 DMA 채널을 비활성화시키는 단계를 포함하는 데이터 변환 방법.
  12. 제11항에 있어서, 상기 오류가 발생한 경우 상기 DMA 채널을 비활성화시키는 것을 로그하고 보고하는 단계를 포함하는 데이터 변환 방법.
  13. 제11항에 있어서, 상기 DMA 채널이 비활성화되기 전에 전송된 바이트들의 수를 결정하는 단계를 포함하는 데이터 변환 방법.
  14. 제9항에 있어서, 상기 DMA 제어기가 상기 대상 장치로부터 DMA 전송된 데이터를 수신하는 것을 중단한 경우 DMA 채널을 비활성화시키는 단계를 포함하는 데이터 변환 방법.
KR1020107024433A 2008-04-01 2009-04-01 임의적인 처리 기능을 갖는 중앙 dma KR20100124852A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/060,728 2008-04-01
US12/060,728 US20090248910A1 (en) 2008-04-01 2008-04-01 Central dma with arbitrary processing functions

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020117012843A Division KR101320840B1 (ko) 2008-04-01 2009-04-01 임의적인 처리 기능을 갖는 중앙 dma

Publications (1)

Publication Number Publication Date
KR20100124852A true KR20100124852A (ko) 2010-11-29

Family

ID=40691319

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020107024433A KR20100124852A (ko) 2008-04-01 2009-04-01 임의적인 처리 기능을 갖는 중앙 dma
KR1020117012843A KR101320840B1 (ko) 2008-04-01 2009-04-01 임의적인 처리 기능을 갖는 중앙 dma

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020117012843A KR101320840B1 (ko) 2008-04-01 2009-04-01 임의적인 처리 기능을 갖는 중앙 dma

Country Status (6)

Country Link
US (1) US20090248910A1 (ko)
EP (1) EP2271993A1 (ko)
JP (1) JP2011516978A (ko)
KR (2) KR20100124852A (ko)
CN (1) CN102037453A (ko)
WO (1) WO2009124127A1 (ko)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8041848B2 (en) 2008-08-04 2011-10-18 Apple Inc. Media processing method and device
US8610830B2 (en) 2008-09-11 2013-12-17 Apple Inc. Video rotation method and device
US8099528B2 (en) 2008-09-30 2012-01-17 Apple Inc. Data filtering using central DMA mechanism
US8458377B2 (en) * 2010-03-05 2013-06-04 Lsi Corporation DMA engine capable of concurrent data manipulation
JP5505742B2 (ja) * 2012-01-18 2014-05-28 横河電機株式会社 計測用アナログフロントエンド回路
CN103379080B (zh) * 2012-04-17 2018-10-12 马维尔国际有限公司 针对多载波系统的dma传输方法与系统
US9769123B2 (en) * 2012-09-06 2017-09-19 Intel Corporation Mitigating unauthorized access to data traffic
JP5695126B2 (ja) 2013-05-14 2015-04-01 株式会社日立製作所 計算機システム、サーバモジュール及びストレージモジュール
CN107357745A (zh) 2016-05-09 2017-11-17 飞思卡尔半导体公司 具有算术单元的dma控制器
CN106708601A (zh) * 2016-12-12 2017-05-24 中国航空工业集团公司西安航空计算技术研究所 一种面向GPU实现的虚拟IOringbuffer的方法
CN108226741B (zh) * 2016-12-14 2020-06-09 中国航空工业集团公司西安航空计算技术研究所 一种dma自测试电路
CN107256363B (zh) * 2017-06-13 2020-03-06 杭州华澜微电子股份有限公司 一种由加解密模块阵列组成的高速加解密装置

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4797853A (en) * 1985-11-15 1989-01-10 Unisys Corporation Direct memory access controller for improved system security, memory to memory transfers, and interrupt processing
US4947366A (en) * 1987-10-02 1990-08-07 Advanced Micro Devices, Inc. Input/output controller incorporating address mapped input/output windows and read ahead/write behind capabilities
EP0470030A3 (en) * 1990-08-02 1993-04-21 International Business Machines Corporation Fast memory power-on diagnostics using direct memory addressing
EP0473102B1 (en) * 1990-08-29 1995-11-22 Honeywell Inc. Data communication system with checksum calculating means
JPH05143520A (ja) * 1991-11-19 1993-06-11 Nec Ibaraki Ltd Dma転送方式
JPH05242009A (ja) * 1992-03-03 1993-09-21 Japan Radio Co Ltd 直接メモリアクセス装置
US5461710A (en) * 1992-03-20 1995-10-24 International Business Machines Corporation Method for providing a readily distinguishable template and means of duplication thereof in a computer system graphical user interface
JPH06175960A (ja) * 1992-12-08 1994-06-24 Fujitsu Ltd アドレス確認方式
US5687316A (en) * 1994-07-29 1997-11-11 International Business Machines Corporation Communication apparatus and methods having P-MAC, I-MAC engines and buffer bypass for simultaneously transmitting multimedia and packet data
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
JPH09305530A (ja) * 1996-05-16 1997-11-28 Brother Ind Ltd Dmaコントローラ
JP3638729B2 (ja) * 1996-09-06 2005-04-13 株式会社日立製作所 データ記憶制御方法及び装置
US5881248A (en) * 1997-03-06 1999-03-09 Advanced Micro Devices, Inc. System and method for optimizing system bus bandwidth in an embedded communication system
US6624816B1 (en) * 1999-09-10 2003-09-23 Intel Corporation Method and apparatus for scalable image processing
JP2003523143A (ja) * 2000-02-09 2003-07-29 スイスコム・モバイル・アクチエンゲゼルシヤフト 復号器,復号方法及びチップカード
JP2001229120A (ja) * 2000-02-18 2001-08-24 Sharp Corp チェーン式dmaの処理誤り検出方法及びdmaコントローラ
US6535208B1 (en) * 2000-09-05 2003-03-18 Ati International Srl Method and apparatus for locking a plurality of display synchronization signals
WO2002060175A1 (fr) * 2001-01-25 2002-08-01 Sony Corporation Dispositif de transfert de donnees
JP3775318B2 (ja) * 2002-03-20 2006-05-17 セイコーエプソン株式会社 データ転送制御装置及び電子機器
US7269739B2 (en) * 2002-05-30 2007-09-11 International Business Machines Corporation Method and system for allowing for the secure transmission and reception of data in a processing system
US7119808B2 (en) * 2003-07-15 2006-10-10 Alienware Labs Corp. Multiple parallel processor computer graphics system
TWI348853B (en) * 2003-08-06 2011-09-11 Enova Technology Corp Real time data encryption/decryption system and method for ide/ata data transfer
US7334059B2 (en) * 2004-03-03 2008-02-19 Freescale Semiconductor, Inc. Multiple burst protocol device controller
JP4698982B2 (ja) * 2004-04-06 2011-06-08 株式会社日立製作所 暗号処理を行うストレージシステム
TWM261751U (en) * 2004-07-09 2005-04-11 Uniwill Comp Corp Switching display processing architecture for information device
JP4668645B2 (ja) * 2005-02-24 2011-04-13 パナソニック株式会社 Dmaコントローラ及びデータ転送制御方法
KR101128898B1 (ko) * 2005-04-06 2012-03-28 매그나칩 반도체 유한회사 직접 메모리 접근 제어장치, 및 이를 이용한 데이터 전송시스템 및 그 전송 방법
JP2006293748A (ja) * 2005-04-12 2006-10-26 Canon Inc 情報処理装置
JP2006338533A (ja) * 2005-06-03 2006-12-14 Renesas Technology Corp Ecc回路を有するマルチレイヤバスシステム
JP2007065963A (ja) * 2005-08-31 2007-03-15 Renesas Technology Corp データ転送システム
US7496695B2 (en) * 2005-09-29 2009-02-24 P.A. Semi, Inc. Unified DMA
FR2899354A1 (fr) * 2006-03-28 2007-10-05 St Microelectronics Sa Traitement de donnees avec transfert de donnees entre memoires.
US8681159B2 (en) * 2006-08-04 2014-03-25 Apple Inc. Method and apparatus for switching between graphics sources

Also Published As

Publication number Publication date
CN102037453A (zh) 2011-04-27
JP2011516978A (ja) 2011-05-26
KR101320840B1 (ko) 2013-10-30
WO2009124127A1 (en) 2009-10-08
KR20110075046A (ko) 2011-07-05
EP2271993A1 (en) 2011-01-12
US20090248910A1 (en) 2009-10-01

Similar Documents

Publication Publication Date Title
KR101320840B1 (ko) 임의적인 처리 기능을 갖는 중앙 dma
US10346122B1 (en) Systems and methods for a supplemental display screen
US9032113B2 (en) Clock control for DMA busses
KR101208882B1 (ko) 매체 프로세싱 방법 및 장치
US8099528B2 (en) Data filtering using central DMA mechanism
CN101595466B (zh) 可配置串行存储器接口
US6989484B2 (en) Controlling sharing of files by portable devices
JP5799259B2 (ja) 電子機器およびコンピュータプログラム
WO2017067369A1 (zh) 一种加密图片、解密图片的方法、装置和设备
EP2804123B1 (en) Method for providing DRM service and electronic device thereof
CN105025349A (zh) 加密的投屏
US20110314299A1 (en) Electronic apparatus, display driving apparatus, and digital content display method thereof
KR20140124484A (ko) 전자 장치에서 디지털 저작권 관리 서비스를 제공하기 위한 장치 및 방법
JP2006211193A (ja) 情報記録再生装置、情報記録再生方法、プログラム、及び記録媒体
JP2012244415A (ja) 暗号処理装置

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
J201 Request for trial against refusal decision
A107 Divisional application of patent
AMND Amendment
B601 Maintenance of original decision after re-examination before a trial
J301 Trial decision

Free format text: TRIAL DECISION FOR APPEAL AGAINST DECISION TO DECLINE REFUSAL REQUESTED 20110504

Effective date: 20111230

J121 Written withdrawal of request for trial
WITB Written withdrawal of application