KR20160007859A - 컴퓨팅 시스템 및 이의 동작 방법. - Google Patents

컴퓨팅 시스템 및 이의 동작 방법. Download PDF

Info

Publication number
KR20160007859A
KR20160007859A KR1020140083900A KR20140083900A KR20160007859A KR 20160007859 A KR20160007859 A KR 20160007859A KR 1020140083900 A KR1020140083900 A KR 1020140083900A KR 20140083900 A KR20140083900 A KR 20140083900A KR 20160007859 A KR20160007859 A KR 20160007859A
Authority
KR
South Korea
Prior art keywords
dma
storage device
integrated module
module interface
data
Prior art date
Application number
KR1020140083900A
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 삼성전자주식회사
Priority to KR1020140083900A priority Critical patent/KR20160007859A/ko
Priority to US14/791,282 priority patent/US20160004655A1/en
Publication of KR20160007859A publication Critical patent/KR20160007859A/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/32Handling requests for interconnection or transfer for access to input/output bus using combination of interrupt and burst mode transfer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0638Combination of memories, e.g. ROM and RAM such as to permit replacement or supplementing of words in one module by words in another module
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1081Address translation for peripheral access to main memory, e.g. direct memory access [DMA]
    • 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/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1012Design facilitation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/205Hybrid memory, e.g. using both volatile and non-volatile memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/25Using a specific main memory architecture
    • G06F2212/253Centralized memory
    • G06F2212/2532Centralized memory comprising a plurality of modules

Abstract

본 발명의 일실시예에 따른 컴퓨팅 시스템은, 서로 다른 종류의 제1 저장 장치, 제2 저장 장치를 포함하고, 상기 제1 저장 장치에 대한 제1 DMA 동작(1st Direct Memory Access)을 제어하고, 제2 저장 장치에 대한 제2 DMA 동작을 수행하기 위한, DMA 요청 신호(Direct Memory Access Request)를 제공하는 제1 통합 모듈 인터페이스(Unified Module Interface)를 포함하는 제1 통합 모듈부(Unified Module Unit)와 상기 제1 통합 모듈 인터페이스로부터 상기 DMA 요청 신호를 수신하여, DMA 요청 응답 신호(Direct Memory Access Request Response)를 상기 제1 통합 모듈 인터페이스에 제공하고, 제2 저장 장치를 대한 제2 DMA 동작(2nd Direct Memory Access)을 제어하는 어플리케이션부(Application Processor)를 포함하는 것을 특징으로 한다.

Description

컴퓨팅 시스템 및 이의 동작 방법.{Computing system and method of operating thereof}
본 개시는 컴퓨팅 시스템 및 및 이의 동작 방법에 관한 것으로, 특히 직접 메모리 접근(Direct memory access)을 할 수 있는, 컴퓨팅 시스템 및 컴퓨팅 동작 방법에 관한 것이다.
일반적으로, 직접 메모리 접근(이하, DMA라 함) 제어장치는 내부 또는 외부의 블록, 예컨대, 입출력(Input/Output, I/O) 장치의 요구에 따라 요청 블록의 내부 버퍼에서 설정된 메모리로 데이터를 전송하거나, 메모리로부터 요청 블럭의 버퍼로 데이터를 전송한다. 요청 블록은 내부에 여러 개의 데이터를 저장할 수 있도록 버퍼(buffer)로 FIFO(First In First Out)가 구성된다. FIFO 버퍼에 메모리로 전송할 만큼의 데이터가 저장되어 있거나, 메모리로부터 데이터를 가져와 데이터를 저장할 수 있을 만큼 비어있을 때, 요청 블록은 DMA 제어장치로 데이터 전송을 요구한다.
이러한 DMA 동작은 미리 DMA 제어장치에 설정된 크기 만큼의 데이터를 모두 전송할 때까지 계속적으로 이루어진다. DMA 제어장치를 통해 모든 데이터의 전송이 완료되면, DMA 제어장치는 인터럽트(interrupt)를 발생하여 CPU(Central Processing Unit) 또는 MCU(Micro Controller Unit)에게 미리 설정된 크기 만큼의 데이터 전송이 완료되었음을 알려준다. CPU는 이 인터럽트를 받아서 이후에 DMA 제어장치로 데이터를 더 전송할 건지, 아니면 연속적으로 일어나는 다른 동작을 수행할 건지를 판단해서 분기한다.
메모리 장치와 저장 장치가 포함된, 통합 모듈부와 CPU가 포함된 어플리케이션부의 DMA 동작을 제어하는 컴퓨팅 시스템 및 이의 동작 방법을 제공한다.
상기와 같은 목적을 달성하기 위하여, 본 발명의 일실시예에 따른 컴퓨팅 시스템은 다른 종류의 제1 저장 장치, 제2 저장 장치를 포함하고, 상기 제1 저장 장치에 대한 제1 DMA 동작(1st Direct Memory Access)을 제어하고, 제2 저장 장치에 대한 제2 DMA 동작을 수행하기 위한, DMA 요청 신호(Direct Memory Access Request)를 제공하는 제1 통합 모듈 인터페이스(Unified Module Interface)를 포함하는 제1 통합 모듈부(Unified Module Unit) 및 상기 제1 통합 모듈 인터페이스로부터 상기 DMA 요청 신호를 수신하여, DMA 요청 응답 신호(Direct Memory Access Request Response)를 상기 제1 통합 모듈 인터페이스에 제공하고, 제2 저장 장치를 대한 제2 DMA 동작(2nd Direct Memory Access)을 제어하는 어플리케이션부(Application Processor)를 포함하는 것을 특징으로 한다.
바람직하게는, 상기 제1 저장 장치는 적어도 하나의 비휘발성 저장 장치를 포함하고, 상기 제2 저장 장치는 적어도 하나의 휘발성 메모리 장치를 포함하는 것을 특징으로 한다.
또한 바람직하게는, 상기 제1 통합 모듈 인터페이스는 상기 어플리케이션부와 상기 제1 통합 모듈 인터페이스간의 통신 프로토콜(Communication protocol)을 제공하는 DMA 엔진(Direct Memory Access Engine)과 상기 제2 저장 장치에 대한, 제2 DMA 동작 수행이 필요한 때, 상기 통신 프로토콜의 정보를 설정하고, 제1 저장 장치를 제어하는 제1 저장 장치 제어부(1st Storage Controller) 및 상기 제1 저장 장치 또는 상기 제2 저장 장치로부터 데이터가 로딩되는 버퍼를 포함하는 것을 특징으로 한다.
또한 바람직하게는, 상기 DMA 엔진은 상기 제1 DMA동작 또는 상기 제2 DMA 동작 수행시에, 상기 데이터의 소스 주소(Souce Address), 도착 주소(Destination Address), 데이터 크기(DMA data length) 및 데이터 제어 정보(DMA data control)를 포함하는 DMA 데이터 정보(DMA data Information)를 상기 제1 통합 모듈 인터페이스부 또는 상기 어플리케이션부에 제공하는 것을 특징으로 한다.
또한 바람직하게는, 상기 DMA 엔진은 상기 제1 DMA 동작 및 상기 제2 DMA 동작 완료시, 상기 어플리케이션부에 알리기 위한 인터럽트 신호(Interrupt signal)를 생성하여, 상기 어플리케이션부에 제공하고, 상기 어플리케이션부는 상기 인터럽트 신호에 응답하여, 상기 어플리케이션부의 CPU가 상기 어플리케이션부의 버스(BUS)를 사용하는 것을 특징으로 한다.
또한 바람직하게는, 상기 제1 저장 장치 제어부는, 상기 제2 DMA 동작을 수행하기 위해, 상기 DMA 요청 신호를 생성하여, 상기 어플리케이션부에 제공하는 것을 특징으로 한다.
또한 바람직하게는, 상기 컴퓨팅 시스템은 제2 통합 모듈부를 더 포함하며, 상기 어플리케이션부는 상기 제2 통합 모듈부의 DMA 요청 신호에 응답하여, 상기 제1 통합 모듈부의 제2 저장 장치에 대한 제2 DMA 동작(2nd Direct Memory Access)을 제어하는 것을 특징으로 한다.
또한 바람직하게는, 상기 어플리케이션부는 상기 DMA 요청 신호를 수신하고, 이에 응답하여, DMA 요청 수신 신호를 상기 통합 모듈 인터페이스에 제공하고, 상기 제2 DMA 동작을 제어하며, 상기 제1 및 제2 저장 장치 중 적어도 하나를 제어하는 DMA 로직 및 상기 DMA 로직에서 생성된 상기 제2 DMA 동작 관련 제어신호를 상기 제1 통합 모듈부에 제공하는 메모리 컨트롤러를 포함하는 것을 특징으로 한다.
또한 바람직하게는, 상기 제2 DMA 동작은, 상기 DMA 요청 신호에 응답하여, 상기 어플리케이션부가 상기 제2 저장 장치를 제어하여, 상기 제2 저장 장치에 저장된 데이터를 상기 제1 통합 모듈 인터페이스에 전송하는 것을 포함하고, 상기 제1 DMA 동작은 상기 제1 저장 장치를 제어하여, 상기 제2 저장 장치로부터 상기 제1 통합 모듈 인터페이스에 전송된 데이터를 상기 제1 저장 장치에 전송하는 것을 특징으로 한다.
또한 바람직하게는, 상기 제1 DMA 동작은 상기 제1 저장 장치를 제어하여, 상기 제1 저장 장치에 저장된 데이터를 상기 제1 통합 모듈 인터페이스에 전송하는 것을 포함하고, 상기 제2 DMA 동작은 상기 DMA 요청 신호에 응답하여, 상기 어플리케이션부가 상기 제2 저장 장치를 제어하여, 상기 제1저장 장치로부터 상기 제1 통합 모듈 인터페이스에 전송된 데이터를 상기 제2 저장 장치에 전송하는 것을 특징으로 한다.
본 발명의 다른 실시예로서, 컴퓨팅 시스템 방법은 통합 모듈 인터페이스가 제1 저장 장치에 대한 제1 DMA 동작을 수행하는 단계, 제2 저장 장치에 대한 제2 DMA 동작을 수행이 필요한 때, 상기 통합 모듈 인터페이스가 DMA 요청 신호를 어플리케이션부에 제공하는 단계, 상기 DMA 요청 신호에 응답하여, 어플리케이션부가 DMA 요청 응답 신호를 통합 모듈 인터페이스에 제공하는 단계 및 상기 어플리케이션부가 제2 저장 장치에 대한 제2 DMA 동작을 하는 단계를 포함하는 것을 특징으로 한다.
바람직하게는, 상기 제1 저장 장치는 적어도 하나의 비휘발성 저장 장치를 포함하고, 상기 제2 저장 장치는 적어도 하나의 휘발성 메모리 장치를 포함하는 것을 특징으로 한다.
또한 바람직하게는, 상기 제2 DMA 동작 단계는 상기 어플리케이션부가 상기 제2 저장 장치를 제어하여, 상기 제2 저장 장치에 저장된 데이터를 상기 통합 모듈 인터페이스에 전송하는 단계를 포함하고, 상기 제1 DMA 동작은 상기 제1 저장 장치를 제어하여, 상기 제2 저장 장치로부터 상기 통합 모듈 인터페이스에 전송된 상기 데이터를 상기 제1 저장 장치에 전송하는 단계를 포함하는 것을 특징으로 한다.
또한 바람직하게는, 상기 제1 DMA 동작 단계는 상기 제1 저장 장치를 제어하여, 상기 제1 저장 장치에 저장된 데이터를 상기 통합 모듈 인터페이스에 전송하는 단계를 포함하고, 상기 제2 DMA 동작 단계, 상기 어플리케이션부가 상기 제2 저장 장치를 제어하여, 상기 제1 저장 장치로부터 상기 통합 모듈 인터페이스에 전송된 상기 데이터를 상기 제2 저장 장치에 전송하는 단계를 포함하는 것을 특징으로 한다.
또한 바람직하게는, 상기 제1 DMA 동작 및 제2 DMA 동작 단계 완료된 때, 상기 어플리케이션부에 상기 동작 단계 완료를 알리기 위한 인터럽트 신호를 생성하여, 상기 어플리케이션부에 제공하는 단계를 포함하는 것을 특징으로 하는 컴퓨팅 시스템 동작 방법.
일실시예에 따른 컴퓨팅 시스템 및 이의 동작 방법에 의하면, 메모리 장치, 저장 장치, 메모리 장치 및 저장 장치의 인터페이스를 공유하는 통합 모듈 인터페이스를 포함하는 통합 모듈부와 CPU 및 DMA 로직이 포함된 어플리케이션부의 직접 메모리 접근 방법을 통하여, 기존에 메모리 장치와 저장 장치 사이에 데이터가 전송될 경우나 다른 주변 장치로 데이터를 전송할 경우 등에, 어플리케이션부의 개입 및 다수 layer를 지나야 함에 따른 데이터 전송 속도의 한계를 극복할 수 있는 효과가 있다. 또한, 데어터 전송에 관하여, 통합 모듈부에 마스터(Master) 권한을 가지게 하여, CPU의 개입없이, 저장 장치의 데이터 전송을 능동적으로 시작할 수 있다.
도1 은 일실시예에 따른 컴퓨팅 시스템을 나타내는 블록도이다.
도2는 일실시예에 따른 통합 모듈 인터페이스를 구체화한 블록도이다.
도3 은 일실시예에 따른 제1 저장 장치 컨트롤러를 구체화한 블록도이다.
도4 는 일실시예에 따른 DMA 엔진을 구체화한 블록도이다.
도5a 및 5b 는 일실시예에 따른 DMA 엔진이 포함하는 통신 프로토콜부 및 DMA 데이터 정보 레지스터의 각각의 포맷을 나타낸 도면이다.
도6 은 일실시예에 따른 어플리케이션부를 구체화한 블록도이다.
도7 은 일실시예로 DMA 로직을 구체화한 블록도이다.
도8 은 일실시예에 따른 제1 및 제2 DMA 동작을 위한 컴퓨팅 시스템을 구체화한 블록도이다.
도9 은 일실시예에 따른 제1 및 제2 DMA 동작을 수행하는 컴퓨팅 시스템을 구체화한 블록도이다.
도10 는 제1 및 제2 DMA 동작을 수행하는 컴퓨팅 동작 방법에 관한 순서도이다.
도11, 도12 는 도10의 제1 및 제2 직접 메모리 접근의 구체적 동작을 나타내는 순서도이다.
도13 는 통합 모듈부(Unified module)를 포함하는 컴퓨팅 시스템 및 네트워크 시스템을 나타내는 도면이다.
이하, 첨부한 도면을 참조하여 본 발명의 실시 예에 대해 상세히 설명한다. 본 발명의 실시 예는 당 업계에서 평균적인 지식을 가진 자에게 본 발명을 보다 완전하게 설명하기 위하여 제공되는 것이다. 본 발명은 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있는 바, 특정 실시 예들을 도면에 예시하고 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 개시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용한다. 첨부된 도면에 있어서, 구조물들의 치수는 본 발명의 명확성을 기하기 위하여 실제보다 확대하거나 축소하여 도시한 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 갖는다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
도1 은 일실시예에 따른 컴퓨팅 시스템(1000)을 나타내는 블록도이다.
도1 을 참조하면, 컴퓨팅 시스템(1000)은 통합 모듈부(Unfied Module, 100) 및 어플리케이션부(Application Processor, 200)를 포함할 수 있다. 통합 모듈부(100)는 제1 저장 장치(120), 제2 저장 장치(130) 및 통합 모듈 인터페이스(110)를 포함할 수 있다. 예컨대 제1 저장 장치(120)는 다양한 기능을 수행하기 위한 반도체 공정에 의해 구현되는 각종 장치가 적용될 수 있으며, 일예로서 제1 저장 장치(120)는 HDD(Hard disk drive) 또는 SSD(Solid state drive) 와 같은 비휘발성 저장 장치일 수 있으며. 또한, 제2 저장 장치(130)는 휘발성 메모리 장치일 있다. 다만, 제2 저장 장치(130)는 MRAM 등의 비휘발성 메모리일 수 있다. 다만, 이하 제2 저장 장치(130)는 휘발성 메모리 장치로, 제1 저장 장치(120)는 비휘발성 저장 장치로 가정하여 본 발명의 실시예를 설명한다. 또한, 이는 일실시예로, 컴퓨팅 시스템(1000)은 제1 및 2 저장 장치외에 다수의 저장 장치를 더 포함할 수 있다.
후술하는 제1 DMA 동작 및 제2 DMA 동작은 각각 제1 직접 메모리 접근 동작, 제2 직접 메모리 접근 동작을 의미하며, 제1 및 제2 DMA 동작을 통하여, 제1 저장 장치(120)와 제2 저장 장치(130)간의 빠른 데이터 전송을 할 수 있다.
통합 모듈 인터페이스(110)는 각종 제어신호를 제1 저장 장치(120)로 제공하여 제1 저장 장치(120)의 동작을 제어할 수 있다. 예컨대, 통합 모듈 인터페이스(100)는 커맨드(CMD), 어드레스(ADDRESS), 클락 신호(CLK) 및 데이터 신호(DATA)를 제1 저장 장치(120)에 제공하여, 제1 저장 장치(120)의 셀 어레이에 억세스할 수 있다. 더 나아가, 본 발명의 일실시예에 따른 제1 DMA 동작을 제어할 수 있다.
어플리케이션부(200)는 통합 모듈(100) 및 제1 저장장치(120)에 연결되어, 제어신호를 제공함으로써, 각 장치의 동작을 제어할 수 있다. 예컨대, 어플리케이션부(200) 내의 CPU의 명령에 따른 제어신호를 통합 모듈(100)에 어플리케이션부(200)내에 메모리 컨트롤러(미도시)를 통하여, 제공할 수 있다. 또한, 메모리 컨트롤러(미도시)는 커맨드(CMD), 어드레스(ADDRESS), 클락 신호(CLK) 및 데이터 신호(DATA)를 제2 저장 장치(130)에 제공하여, 제2 저장 장치(130)의 셀 어레이에 억세스할 수 있다. 더 나아가 본 발명의 일실시예에 따른 제2 DMA 동작을 제어할 수 있다. 통합 모듈 인터페이스(110)와 어플리케이션부(200)는 통신 프로토콜을 기반으로, 통합 모듈 인터페이스(110)는 DMA 요청 신호(DMA_Request)를 어플리케이션부(200)에 제공할 수 있다. 어플리케이션부(200)은 이에 응답하여, 제2 DMA 동작을 수행할 수 있다.
본 발명의 일실시예에 따른, 제1 DMA 동작은, DMA 요청 신호(DMA_Request)를 어플리케이션부(200)에 제공하기 위한 준비 동작, 제1 저장 장치(120)에 저장된 데이터를 통합 모듈 인터페이스(110)로 전송하는 동작 및 통합 모듈 인터페이스(110)에 전송된 데이터를 제1 저장 장치(120)으로 전송하는 동작 중 적어도 하나를 포함할 수 있다. 제2 DMA 동작은, 제2 저장 장치(130)에 저장된 데이터를 통합 모듈 인터페이스(110)에 전송하는 동작 및 통합 모듈 인터페이스(110)에 전송된 데이터를 제2 저장 장치(130)에 전송하는 동작 중 적어도 하나를 포함할 수 있다. 제1 및 제2 DMA 동작의 자세한 사항은 후술하기로 한다.
도2는 일실시예에 따른 통합 모듈 인터페이스(110)를 구체화한 블록도이다.
도2 를 참조하면, 통합 모듈 인터페이스(110)는 Tx/Rx 버퍼(111), 제1 저장 장치 컨트롤러(112) 및 DMA 엔진(113)를 포함할 수 있다. Tx/Rx 버퍼(111)는 제1 저장 장치(120) 및 제2 저장 장치(130)간의 데이터 전송에 필요한 데이터를 임시로 저장할 수 있고, 제1 저장 장치(120)과 제2 저장 장치(130)간의 전송 속도차를 고려하여 전송 효율을 높이기 위한 구성일 수 있다. 제1 저장 장치 컨트롤러(112)는 통신 프로토콜 정보를 설정할 수 있으며, 제1 DMA 동작을 제어할 수 있다. 일실시예로, 제1 저장 장치 컨트롤러(112)는 제1 저장 장치(120)에 각종 제어 신호를 제공하여, 제1 저장 장치(120)에 저장된 데이터에 접근할 수 있으며, 접근한 상기 데이터를 Tx/Rx 버퍼(111)에 전송할 수 있다. 또한, Tx/Rx 버퍼(111)에 저장된 데이터를 제1 저장 장치(120)에 전송할 수 있다. 또한, 어플리케이션부(200)의 제2 DMA 동작의 수행을 위하여, DMA 요청 신호(DMA_Request)를 어플리케이션부(200)에 제공할 수 있다. 더 나아가, 상기DMA 요청 신호(DMA_Request)를 제공하기 위한 준비 동작 수행을 할 수 있다. 상기 준비 동작 수행의 자세한 내용은 후술하기로 한다.DMA 엔진(113)은 어플리케이션부(200)와 통합 모듈 인터페이스(110)가 통신하는데 기반이 되는 통신 프로토콜 정보 및 제1 및 제2 DMA 동작의 대상이 되는 데이터에 관한 정보를 제공할 수 있다.
도3 은 일실시예에 따른 제1 저장 장치 컨트롤러(112)를 구체화한 블록도이다.
도3 을 참조하면, 일실시예에 따른 제1 저장 장치 컨트롤러(112)는 통신 프로토콜 정보 설정부(Communication protocol information set unit ,112a), DMA 요청 신호 생성부(112b) 및 제1 DMA 동작 제어부(112c)를 포함할 수 있다. 프로토콜 정보 설정부(112a)는 어플리케이션부(200)가 제2 DMA 동작을 수행하기 위한, DMA 요청 신호(DMA_Request)를 어플리케이션부(200)에 제공하기 위하여, 먼저 DMA 엔진(113)내의 통신 프로토콜 정보를 설정할 수 있다. 설정된 통신 프로토콜 정보 기반으로, DMA 요청 신호 생성부(112b)는 DMA 요청 신호(DMA_Request)를 생성하여, 어플리케이션부(200)에 제공할 수 있다. 다만, 이것은 일실시예로 DMA 엔진(112)에 DMA 요청 신호 생성부(112b)가 포함될 수 있으며, DMA 요청 신호(DMA_Request)를 어플리케이션부(200)에 제공할 수 있다. 제1 DMA 동작 제어부(112c)는 제1 저장 장치(120)를 대상으로, 제1 DMA 동작을 제어할 수 있는데, 예를 들면, 제1 저장 장치(120)에 저장된 데이터를 Tx/Rx 버퍼(111)에 전송하는 동작 또는 제2 저장 장치(130)에 저장된 데이터로서, 제2 저장 장치(130)로부터 Tx/Rx 버퍼(111)에 전송된 상기 데이터를 제1 저장 장치(120)에 전송하는 동작을 할 수 있다. 다만, 이는 일실시예로, 프로토콜 정보 설정부(112a)와 제1 DMA 동작 제어부(112c)는 하나의 로직으로 구성할 수 있다. 또한, 본 발명의 일실시예로, 제1 저장 장치를 제어하기 위하여, 제어신호를 생성하여, 각 블록에 전송하는 제1 저장장치 제어부(미도시)를 포함할 수 있으며, DMA 관련 데이터의 오류를 정정할 수 있는 DMA 데이터 ECC부(미도시)를 더 포함할 수 있다.
도4 는 일실시예에 따른 DMA 엔진(113)을 구체화한 블록도이고, 도5a 및 5b 는 일실시예에 따른 DMA 엔진(113)이 포함하는 통신 프로토콜부(113a) 및 DMA 데이터 정보 레지스터(113b)의 각각의 포맷을 나타낸 도면이다. 도 5c는 제1및 제2 DMA 동작시의 데이터의 흐름을 나타낸 상태 다이어그램이다.
도4 를 참조하면, 통신 프로토콜부(Communication Protocol, 113a), DMA 데이터 정보 레지스터(DMA Data Format Register, 113b) 및 인터럽트 신호 생성부(Interupt Signal generating Unit, 113c)를 포함할 수 있다. 통신 프로토콜부(113a)는 도5a에 나타난 DMA Command issue및 DMA Done issue 정보를 가질 수 있다. 도5a 의 DMA Command issue및 DMA Done issue정보는 일실시예에 따라, 32bit로 설정할 수 있다. 다만, 이는 일실시예로서, 32bit에 국한되지 않고, 다양한 bit로 DMA Command issue 및 DMA Done issue를 설정할 수 있다. 각각 bit는 제1 및 제2 DMA동작을 수행하는 각각의 DMA 채널을 가르키게 된다. 각 DMA 채널은 제1 및 제2 DMA 동작 방법을 이용한 제1 저장 장치(120)와 제2 저장 장치(130)간의 데이터 전송에 이용될 수 있다. DMA Command issue의 bit는 제1 저장 장치 컨트롤러(112)에 의해 0에서 1로 설정될 수 있으며, 이는 상기 bit에 해당하는 DMA 채널을 이용하여, 제1 및 제2 DMA 동작의 대상이 되는 데이터의 전송 준비가 완료되었다는 의미일 수 있다. 또한, 일실시예로 어플리케이션부(200)는 1로 설정된 DMA Command issue의 bit를 0으로 설정할 수 있다. DMA Done issue의 bit는 어플리케이션부(200)가 제2 DMA 동작을 완료한 경우에, 0에서 1로 설정될 수 있으며, DMA 엔진부(113)는 상기 1로 설정된 DMA Done issue의 bit를 일정 시간이 지난 후에 0으로 설정할 수 있다.
DMA 데이터 정보 레지스터(113b)는 도5b 에 나타난 DMA 데이터 관련 정보(DMA Data Information)를 저장할 수 있다. 어플리케이션부(200) 또는 제1 저장 장치 컨트롤러(112)는 DMA 데이터 정보 레지스터(113b)에 저장된DMA 데이터 정보(DMA Data Information)를 참조하여, 제1 및 제 2 DMA 동작을 제어할 수 있다. DMA 데이터 정보(DMA Data Information)는 상기 데이터의 소스 주소(Source Address), 도착 주소(Destination Address), 데이터 크기(DMA Data Length) 및 데이터 제어 정보(DMA data control)을 포함할 수 있다. 소스 주소(Source Address)는 상기 데이터가 저장되어 있는 위치의 주소값을 나타낼 수 있으며, 도착 주소(Destination Address)는 상기 데이터가 전송되어야할 위치의 주소값을 나타낼 수 있다. 또한, 데이터 크기(DMA Data Length) 는 상기 전송될 데이터의 데이터 크기를 byte단위로 나타낼 수 있으며, 및 데이터 제어 정보(DMA data control)는 일실시예로, 제1 저장 장치(120)에 저장된 데이터가 제2 저장 장치(130)으로 전송되는 경우는 00, 제2 저장 장치(130)에 저장된 데이터가 제1 저장 장치(120)으로 전송되는 경우는 01로 설정할 수 있어, 제1 및 제2 DMA 동작 방법을 통한 데이터 전송 방향을 나타낼 수 있다. DMA Command issue및 DMA Done issue 정보는 어플리케이션부(200)에서 필요한 DMA 채널 수에 맞추어, 적어도 하나 이상의 DMA Command issue및 DMA Done issue 정보를 가질 수 있다.
도4 의 인터럽트 신호 생성부(113c)는 제1 및 제2 DMA 동작을 마친 후에, 어플리케이선부(200)에 상기 동작을 마쳤음을 알리기 위한, 인터럽트 신호를 생성하고, 어플리케이션부(200)에 제공할 수 있다. 다만, 이는 일실시예로서, 인터럽트 신호 생성부(113c)는 DMA 엔진(113c)내에 위치하는 것에 국한되지 않으며, 통합 모듈 인터페이스(110) 내의 어디든 포함될 수 있다.
도5c 를 참조하면, 일실시예에 따른, 제1 및 제2 DMA 동작시의 데이터 흐름을 나타낸다. 먼저 휘발성 메모리 장치인 제2 저장 장치에서 비휘발성 저장 장치인 제1 저장 장치로의 데이터 전송의 경우에는, 먼저, IDLE 상태에서 제2 저장 장치에 저장된 데이터가 통합 모듈 인터페이스(110)으로 전송될 준비되면, 통합 모듈 인터페이스(110)내의 DMA 엔진(113)이 제공하는, 통신 프로토콜의 DMA Command issue 정보 중 상기 데이터를 전송할 DMA 채널을 나타내는 위치의 bit를 0에서 1로 설정할 수 있다. 이는 일실시예로, 제1 저장 장치 컨트롤러(112)가 DMA Command issue정보의 bit를 0에서 1로 설정할 수 있다. 다음에는 통합 모듈 인터페이스(110)의 제1 저장 장치 컨트롤러(112)는 DMA Command issue 정보의 bit가 1로 설정된 것을 확인한 후, 어플리케이션부(200)에 DMA 요청 신호(DMA_Request)를 생성 및 제공할 수 있다. 어플리케이션부(200)는 이에 응답하여, 상기 1로 설정된 DMA Command issue 정보의 bit를 0으로 설정하고, DMA Command issue 정보를 참조하여, 휘발성 메모리 장치인 제2 저장 장치의 데이터를 통합 모듈 인터페이스(110)로 전송할 수 있다. 일실시예로, 통합 모듈 인터페이스(110) 내의 Tx/Rx 버퍼(111)로 상기 데이터를 전송할 수 있다. 어플리케이션(200)은 상기 데이터 전송을 완료한 후에 상기 통신 프로토콜의 DMA Done issue정보에서. 상기 데이터를 전송한DMA 채널을 나타내는 위치의 bit를 0에서 1로 설정할 수 있다. 그리고, 제1 저장 장치 컨트롤러(112)는 상기 DMA Done issue를 참조하여, Tx/Rx 버퍼(112)에 전송이 완료된 데이터를 비휘발성 저장 장치인 제1 저장 장치로 전송할 수 있다. 상기 전송이 완료된 이후, DMA 엔진(113)는 DMA Done issue의 1로 설정된 bit를 0으로 설정해주어 다시 IDLE 상태로 될 수 있다.
도6 은 일실시예에 따른 어플리케이션부(200)를 구체화한 블록도이다.
도6 을 참조하면, 어플리케이션부(200)는 CPU(210), DMA 로직(230), 메모리 컨트롤러(240) 및 버스(220)을 포함할 수 있다. CPU(210) 및 DMA logic(230)은 버스(220)를 통하여, 신호 및 데이터를 서로 주고 받을 수 있으며, 메모리 컨트롤러(240)는 통합 모듈 인터페이스(110)과 연결되어, CPU(210) 또는 DMA 로직(230)의 제어 신호를 통합 모듈 인터페이스(110)에 제공할 수 있다. 또한, 메모리 컨트롤러(240)는 휘발성 메모리 장치인 제2 저장 장치(120)와 연결되어, 제2 저장 장치(120)에 저장된 데이터에 접근할 수 있으며, 예를 들면, CPU(210) 또는 DMA 로직(230)의 제어신호를 기반으로, 제2 저장 장치(120)에 데이터를 기입/독출 할 수 있으며, 저장된 데이터를 통합 모듈 인터페이스(110)로 전송할 수 있도록한다.
DMA 로직(230)은 통합 모듈 인터페이스부(110)으로부터 제공된 DMA 요청 신호(DMA_Request)를 수신할 수 있다. 이에 응답하여, DMA 요청 응답 신호(DMA_Request_Response)를 생성하여, 통합 모듈 인터페이스(110)에 제공할 수 있다. 일실시예로, DMA 로직(230)은 통합 모듈 인터페이스부(110)내의 DMA 엔진(112)에 상기 DMA 요청 응답 신호(DMA_Request_Response)를 제공할 수 있다. 위와 같이 DMA 요청 신호(DMA_Request)의 수신과 응답은 DMA 엔진(112)의 통신 프로토콜에 기반하여, 수행될 수 있다. 일실시예로, DMA 요청 응답 신호(DMA_Request_Response)를 수신하여, DMA 엔진(112)이 제공하는 통신 프로토콜 중 DMA Command issue정보 상에 1로 설정된 bit를 0으로 설정할 수 있다. 통합 모듈 인터페이스(110)는 DMA Command issue정보를 참조하여, DMA 로직(230)이 DMA 요청 신호(DMA_Request)를 수신 완료하였음을 알 수 있다. 또한, DMA 로직(230)은 DMA 요청 신호(DMA_Request)를 수신한 후에, 제2 DMA 동작을 제어할 수 있다. 일실시예로, DMA 로직(230)은 메모리 컨트롤러(240)를 통하여, DMA 엔진(113)가 제공하는 통신 프로토콜을 참조하여, 제2 저장 장치(130)에 저장된 데이터를 통합 모듈 인터페이스(110) 내의 Tx/Rx 버퍼(111)로 전송하거나, 제1 저장 장치(120)으로부터 Tx/Rx 버퍼(111)로 전송된 데이터를 제2 저장 장치(130)에 전송할 수 있다.
도7 은 일실시예로 DMA 로직(230)을 구체화한 블록도이다.
도7 을 참조하면, DMA 요청 신호 수신부(231), DMA 요청 응답부(232). 제2 통신 프로토콜 정보 설정부(233) 및 제2 DMA 동작 제어부(234)을 포함할 수 있다. DMA 요청 신호 수신부(231)는 통합 모듈 인터페이스(110)에서 제공하는 DMA 요청 신호(DMA_Request)를 수신할 수 있다. DMA 요청 응답부(232)는 DMA 요청 신호(DMA_Request)에 응답하는 DMA 요청 응답 신호(DMA_Request_Response)를 통합 모듈 인터페이스(110)에 제공할 수 있다.
제2 통신 프로토콜 정보 설정부(233)는 DMA 엔진(112)이 제공하는 통신 프로토콜의 DMA Command issue 및 Done issue 정보를 설정할 수 있다.
제2 DMA 동작 제어부(234)는 제2 저장 장치(130)에 저장된 데이터를 통합 모듈 인터페이스(110)으로 전송하거나 통합 모듈 인터페이스(110)에 전송된 데이터를 제2 저장 장치(130)에 전송하는 동작을 제어할 수 있다. 또한, 발명의 일실시예로, 다수의 Read/Write 명령을 저장하여, 차례차례 Read/Write를 수행할 수 있도록 하는 Read/Write command queue unit(미도시)를 더 포함할 수 있으며, DMA 요청 신호(DMA_Request)를 수신하는 DMA 요청 수신부(미도시)를 더 포함할 수 있다.
도8 은 일실시예에 따른 제1 및 제2 DMA 동작을 위한 컴퓨팅 시스템(1000)을 구체화한 블록도이다.
도8 을 참조하면, 컴퓨팅 시스템(1000)은 통합 모듈부(100) 및 어플리케이션부(200)을 포함할 수 있다. 일실시예에 따라, 통합 모듈부(100)는 통합 모듈 인터페이스(110), 제1 저장 장치(120) 및 제2 저장 장치(130)을 포함할 수 있다. 어플리케이션부(200)은 CPU(210), DMA 로직(230), 메모리 컨트롤러(230) 및 이를 연결하는 버스(220)을 포함할 수 있다. 먼저, CPU(210)은 제1 및 제2 DMA 동작을 명령할 수 있고, 상기 DMA 동작 명령은 메모리 컨트롤러(240)를 통하여, 통합 모듈 인터페이스(110)에 제공될 수 있다.
제2 저장 장치(130)에서 제1 저장 장치(120)으로 데이터가 전송되는 경우, 제1 저장 장치 컨트롤러(112)는 DMA 엔진(113)에서 제공하는 통신 프로토콜의 DMA Command issue 정보에서 상기 데이터를 전송할 DMA 채널을 가르키는 위치의 bit를 0에서 1로 설정할 수 있다. 이후, 제1 저장 장치 컨트롤러(112)는 상기 DMA Command issue정보를 참조하여, DMA 로직(230)에 DMA 요청 신호(DMA_Request)를 제공할 수 있다. DMA 로직(230)은 DMA 엔진(113)에 상기 DMA 요청 응답 신호(DMA_Request_Response)를 제공할 수 있다. 위와 같이 DMA 요청 신호(DMA_Request)의 제공 및 응답은 DMA 엔진(113)이 제공하는 통신 프로토콜에 기반하여, 수행될 수 있다. 상기 DMA 요청 응답 신호(DMA_Request_Response)를 제공함으로써, DMA 엔진(113)이 제공하는 통신 프로토콜의DMA Command issue정보에서 1로 설정된 bit를 0으로 설정할 수 있다. DMA 로직(230)은 메모리 컨트롤러(240)를 통하여, 제2 저장 장치(130)에 저장된 데이터를 Tx/Rx 버퍼(111)에 제2 DMA 동작 제어 신호(CS2)를 제공할 수 있다. 전송 대상이 되는 상기 저장된 데이터 정보는 DMA 엔진(113)의 DMA 데이터 정보 레지스터에 저장될 수 있으며, 전송 동작시, DMA 데이터 정보 레지스터의 DMA 데이터 정보를 참조할 수 있다. 일실시예에 따라, 메모리 컨트롤러(240)는 제2 저장장치(130)에 저장된 데이터를 독출하는 명령을 제공하여, 독출된 데이터를 Tx/Rx 버퍼(111)에 기입하는 방법으로 전송할 수 있다. 이에 따라, Tx/Rx 버퍼(111)에 상기 데이터가 전송되어, 저장될 수 있으며, DMA 로직(230)은 상기 데이터 전송을 완료한 후에 DMA 엔진(113)이 제공하는 통신 프로토콜의 DMA Done issue정보에서 상기 데이터를 전송한DMA 채널을 가르키는 위치의 bit를 0에서 1로 설정하여, 제2 저장 장치 컨트롤러(111)는 상기 DMA Done issue정보를 참조하여, Tx/Rx 버퍼(111)에 전송이 완료된 데이터를 제1 저장 장치(120)으로 전송하기 위한 제1 DMA 동작 제어 신호(CS3)를 제공하여, 제1 저장 장치(120)로 전송할 수 있다.
제1 저장 장치(120)에서 제2 저장 장치(130)으로 데이터가 전송되는 경우, 제1 저장 장치 컨트롤러(112)는 DMA 엔진(113)이 제공하는 통신 프로토콜의 DMA Command issue 정보에서 상기 데이터를 전송할 DMA 채널을 가르키는 위치의 bit를 0에서 1로 설정할 수 있다. 이후, 제1 저장 장치 컨트롤러(112)는 제1 DMA 동작 제어 신호(CS3)를 제공하여, 제1 저장 장치(120)에 저장된 데이터를 Tx/Rx 버퍼(111)에 전송할 수 있다. 전송 대상이 되는 상기 저장된 데이터 정보는 DMA 엔진(113)의 DMA 데이터 정보 레지스터에 저장될 수 있으며, 전송 동작시, 제1 저장 장치 컨트롤러(112)는 DMA 데이터 정보 레지스터의 DMA 데이터 정보를 참조할 수 있다. 전송이 완료된 경우, 상기 DMA Command issue정보를 참조하여, DMA 로직(230)에 DMA 요청 신호(DMA_Request)를 제공할 수 있다. DMA 로직(230)은 DMA 엔진(113)에 상기 DMA 요청 응답 신호(DMA_Request_Response)를 제공할 수 있다. 위와 같이 DMA 요청 신호(DMA_Request)의 제공 및 응답은 DMA 엔진(113)이 제공하는 통신 프로토콜에 기반하여, 수행될 수 있다. 상기 DMA 요청 응답 신호(DMA_Request_Response)를 제공함으로써, DMA 엔진(113)이 제공하는 통신 프로토콜의 DMA Command issue 정보에서 1로 설정된 bit를 0으로 설정할 수 있다. DMA 로직(230)은 메모리 컨트롤러(240)를 통하여, 제2 DMA 동작 제어 신호(CS1)를 제공하여, Tx/Rx 버퍼(111)에 전송된 데이터를 제2 저장 장치(130)에 전송할 수 있다. 일실시예에 따라, 메모리 컨트롤러(240)는 Tx/Rx 버퍼(111) 에 전송된 데이터를 독출하여, 독출된 데이터를 제2 저장장치(130)에 기입하는 명령을 제공하여 전송할 수 있다. DMA 로직(230)은 상기 데이터 전송을 완료한 후에 상기DMA Done issue정보에서 상기 데이터를 전송한DMA 채널을 가르키는 위치의 bit를 0에서 1로 설정할 수 있다. 일실시예로 어플리케이션부(200)의 CPU(210)가 제1 및 제2 DMA 동작 완료를 알아, 버스(230)를 사용할 수 있도록, 상기 DMA 엔진(112)는 인터럽트 신호(Interupt Signal/IS)를 CPU(210)에 제공할 수 있다.
도9 은 일실시예에 따른 제1 및 제2 DMA 동작을 수행하는 컴퓨팅 시스템(1000)을 구체화한 블록도이다.
도9 은 도8 와 달리, 제1 통합 모듈부(100)내의 데이터 전송이 아닌, 제1 통합 모듈부(100)와 제2 통합 모듈부(300)간의 데이터 전송을 수행하는 컴퓨팅 시스템(1000)일 수 있다. 도10 을 참조하면, 도8 의 DMA 로직(230)과 달리, 데이터 정보 레지스터(234) 및 임시 데이터 레지스터(235)를 더 포함할 수 있다. 제2 통합 모듈부(300)에 저장된 데이터가 전송될 준비, 일실시예로, 제1 DMA 동작으로써, 상기 제2 통합 모듈부(300)에 저장된 데이터가 Tx/Rx 버퍼2(312)에 전송 완료된 경우, 제2 통합 모듈 인터페이스(310)은 DMA 요청 신호(DMA_Request)를 DMA 로직(230)에 제공할 수 있다. 이에 DMA 로직(230)은 Tx/Rx 버퍼2(312)에 전송된 데이터의 정보를 데이터 정보 레지스터(234)에 저장할 수 있으며, 상기 전송된 데이터는 임시 데이터 레지스터(235)에 임시적으로 저장할 수 있다. DMA 로직(230)은 데이터 정보 레지스터(234) 및 임시 데이터 레지스터(235)를 참조하여, 제1 통합 모듈부(100)로 데이터를 전송하는 제2 DMA 동작을 제어할 수 있다.
도10 는 제1 및 제2 DMA 동작을 수행하는 컴퓨팅 동작 방법에 관한 순서도이다.
도10 를 참조하면, 통합 모듈 인터페이스(110)가 제1 또는 제2 저장 장치에 저장된 제1 및 제2 DMA 동작의 대상이 되는 DMA data의 제1 DMA 동작을 수행하는 단계(S100)를 포함한다. 이후에, 통합 모듈 인터페이스(110)는 DMA 요청 신호(DMA_Request)를 어플리케이션부(200)에 제공하는 단계(S110)를 포함한다. 이에, 어플리케이션부(200)는 DMA 요청 응답 신호(DMA_Request_Response)를 통합 모듈 인터페이스(110)에 제공하는 단계(S120)을 포함한다. 어플리케이션부(200)는 상기 DMA data의 제2 DMA 동작을 수행하는 단계(S130)을 포함하고, 더 나아가 일실시예로 통합 모듈 인터페이스(110)는 제1 및 제2 DMA 동작 완료시, 인터럽트 신호(Interupt Signal/IS) 생성 및 어플리케이션부(200)에 제공하는 단계를 더 포함할 수 있다. 각각 단계의 자세한 과정은 앞에 서술한바 생략한다.
도11, 도12 는 도10의 제1 및 제2 직접 메모리 접근의 구체적 동작을 나타내는 순서도이다.
도11 을 참조하면, 제1 저장 장치(120)에 저장된 데이터가 제2 저장 장치(130)으로 전송되는 경우의 제1 및 제2 DMA 동작을 순서도로 나타낸 것으로, 먼저 통합 모듈 인터페이스(110)가 제2 저장 장치에 저장된 DMA data를 통합 모듈 인터페이스(110)로 전송하는 제1 DMA 동작 단계(S200)를 포함할 수 있다. 통합 모듈 인터페이스(110)가 DMA 요청 신호(DMA_Request)를 어플리케이션부(200)에 제공하는 단계(S210)를 포함할 수 있다. 어플리케이션부(200)는 DMA 요청 응답 신호(DMA_Request_Response)를 통합 모듈 인터페이스(110)에 제공하는 단계를 포함할 수 있다. 이후, 어플리케이션부(200)가 통합 모듈 인터페이스(110)에 전송된 상기 DMA data를 제2 저장 장치(130)로 전송하는, 제2 DMA 동작을 수행하는 단계(S230)를 포함할 수 있다.
도12 를 참조하면, 제2 저장 장치(130)에 저장된 데이터가 제1 저장 장치(120)으로 전송되는 경우의 제1 및 제2 DMA 동작을 순서도로 나타낸 것으로, 먼저 통합 모듈 인터페이스(110)가 제2 DMA 동작을 위하여 준비하는 단계(S300)를 거칠 수 있다. 상기 준비하는 단계(S300)는 통합 모듈 인터페이스(110)내의 DMA 엔진(113)이 제공하는 통신 프로토콜의 DMA Command issue정보에서 bit를 0에서 1로 설정하는 것을 포함할 수 있으며, 상기 준비하는 단계(S300)는 제1 DMA 동작에 포함되는 단계일 수 있다. 통합 모듈 인터페이스(110)가 DMA 요청 신호(DMA_Request)를 어플리케이션부(200)에 제공하는 단계(S310)를 포함할 수 있다. 어플리케이션부(200)가 DMA 요청 응답 신호(DMA_Request_Response)를 통합 모듈 인터페이스(110)에 제공하는 단계(S320)를 포함할 수 있으며, 어플리케이션부(200)가 제2 저장 장치(130)에 저장된 DMA data를 통합 모듈 인터페이스(110)로 전송하는 단계(S330)를 포함할 수 있다. 상기 통합 모듈 인터페이스로 전송하는 단계(S330)는 제2 DMA 동작에 해당될 수 있다. 통합 모듈 인터페이스(110)가 통합 모듈 인터페이스(110)로 전송된 DMA data를 제1 저장 장치(120)로 전송하는 단계(S340)를 포함할 수 있으며, 상기 제1 저장 장치(120)로 전송하는 단계(S340)는 제1 DMA 동작에 해당될 수 있다.
도13 는 통합 모듈부(Unified module)를 포함하는 컴퓨팅 시스템 및 네트워크 시스템을 나타내는 도면이다.
도13 을 참조하면, 본 발명의 실시예에 따른 네트워크 시스템(NSYS)은 네트워크를 통해 연결되는 컴퓨팅 시스템(CSYS) 및 다수의 단말들(TEM1~TEMn)을 포함할 수 있다. 본 발명의 실시예에 따른 컴퓨팅 시스템(CSYS)은 네트워크에 연결되는 다수의 단말들(TEM1~TEMn)로부터 수신되는 요청을 처리하는 서버(SERVER) 및 단말들(TEM1~TEMn)로부터 수신되는 요청에 대응되는 데이터를 저장하는 통합 모듈부()를 포함하는 구비할 수 있다.
도13 의 어플리케이션부(Application Processor)는 도 1의 어플리케이션부(Application Processor)일 수 있다. 또한, 도14 의 컴퓨팅 시스템(CSYS)은 도1 의 컴퓨팅 시스템(CSYS)일 수 있다. 또한, 도14의 어플리케이션부(Application Proccessing Unit)에서 네트워크에 포함된 다수의 단말들(TEM1~TEMn)에 데이터 전송 명령, DMA 동작 명령을 발행하는 경우에도 도 1의 방법이 응용될 수 있다.
이상에서와 같이 도면과 명세서에서 최적 실시예가 개시되었다. 여기서 특정한 용어들이었으나, 이는 단지 본 발명을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.

Claims (10)

  1. 서로 다른 종류의 제1 저장 장치, 제2 저장 장치를 포함하고, 상기 제1 저장 장치에 대한 제1 DMA 동작(1st Direct Memory Access)을 제어하고, 제2 저장 장치에 대한 제2 DMA 동작을 수행하기 위한, DMA 요청 신호(Direct Memory Access Request)를 제공하는 제1 통합 모듈 인터페이스(Unified Module Interface)를 포함하는 제1 통합 모듈부(Unified Module Unit); 및
    상기 제1 통합 모듈 인터페이스로부터 상기 DMA 요청 신호를 수신하여, DMA 요청 응답 신호(Direct Memory Access Request Response)를 상기 제1 통합 모듈 인터페이스에 제공하고, 상기 제2 저장 장치를 대한 상기 제2 DMA 동작(2nd Direct Memory Access)을 제어하는 어플리케이션부(Application Processor)를 포함하는 것을 특징으로 하는 컴퓨팅 시스템.
  2. 제1 항에 있어서,
    상기 제1 저장 장치는,
    적어도 하나의 비휘발성 저장 장치를 포함하고
    상기 제2 저장 장치는,
    적어도 하나의 휘발성 메모리 장치를 포함하는 것을 특징으로 하는 컴퓨팅 시스템.
  3. 제1항에 있어서,
    상기 제1 통합 모듈 인터페이스는,
    상기 어플리케이션부와 상기 제1 통합 모듈 인터페이스간의 통신 프로토콜(Communication protocol)을 제공하는 DMA 엔진(Direct Memory Access Engine);
    상기 제2 저장 장치에 대한, 제2 DMA 동작 수행이 필요한 때, 상기 통신 프로토콜의 정보를 설정하고, 제1 저장 장치를 제어하는 제1 저장 장치 제어부(1st Storage Controller); 및
    상기 제1 저장 장치 또는 상기 제2 저장 장치로부터 데이터가 로딩되는 버퍼를 포함하는 것을 특징으로 하는 컴퓨팅 시스템.
  4. 제1 항에 있어서,
    상기 컴퓨팅 시스템은 제2 통합 모듈부를 더 포함하며,
    상기 어플리케이션부는 상기 제2 통합 모듈부의 DMA 요청 신호에 응답하여, 상기 제1 통합 모듈부의 제2 저장 장치에 대한 제2 DMA 동작(2nd Direct Memory Access)을 제어하는 것을 특징으로 하는 컴퓨팅 시스템.
  5. 제1 항에 있어서,
    상기 어플리케이션부는,
    상기 DMA 요청 신호를 수신하고, 이에 응답하여, DMA 요청 수신 신호를 상기 통합 모듈 인터페이스에 제공하고, 상기 제2 DMA 동작을 제어하며, 상기 제1 및 제2 저장 장치 중 적어도 하나를 제어하는 DMA 로직을 포함하는 것을 특징으로 하는 컴퓨팅 시스템.
  6. 제1 항에 있어서,
    상기 제2 DMA 동작은,
    상기 DMA 요청 신호에 응답하여, 상기 어플리케이션부가 상기 제2 저장 장치를 제어하여, 상기 제2 저장 장치에 저장된 데이터를 상기 제1 통합 모듈 인터페이스에 전송하는 것을 포함하고,
    상기 제1 DMA 동작은,
    상기 제1 저장 장치를 제어하여, 상기 제2 저장 장치로부터 상기 제1 통합 모듈 인터페이스에 전송된 데이터를 상기 제1 저장 장치에 전송하는 것을 특징으로 하는 컴퓨팅 시스템.
  7. 제1 항에 있어서,
    상기 제1 DMA 동작은,
    상기 제1 저장 장치를 제어하여, 상기 제1 저장 장치에 저장된 데이터를 상기 제1 통합 모듈 인터페이스에 전송하는 것을 포함하고,
    상기 제2 DMA 동작은,
    상기 DMA 요청 신호에 응답하여, 상기 어플리케이션부가 상기 제2 저장 장치를 제어하여, 상기 제1저장 장치로부터 상기 제1 통합 모듈 인터페이스에 전송된 데이터를 상기 제2 저장 장치에 전송하는 것을 특징으로 하는 컴퓨팅 시스템.
  8. 통합 모듈 인터페이스가 제1 저장 장치에 대한 제1 DMA 동작을 수행하는 단계;
    제2 저장 장치에 대한 제2 DMA 동작을 수행이 필요한 때, 상기 통합 모듈 인터페이스가 DMA 요청 신호를 어플리케이션부에 제공하는 단계;
    상기 DMA 요청 신호에 응답하여, 어플리케이션부가 DMA 요청 응답 신호를 통합 모듈 인터페이스에 제공하는 단계; 및
    상기 어플리케이션부가 제2 저장 장치에 대한 제2 DMA 동작을 하는 단계를 포함하는 것을 특징으로 하는 컴퓨팅 시스템 동작 방법.
  9. 제8 항에 있어서,
    상기 제1 저장 장치는,
    적어도 하나의 비휘발성 저장 장치를 포함하고
    상기 제2 저장 장치는,
    적어도 하나의 휘발성 메모리 장치를 포함하는 것을 특징으로 하는 컴퓨팅 시스템 동작 방법.
  10. 제8 항에 있어서,
    상기 제2 DMA 동작 단계는,
    상기 어플리케이션부가 상기 제2 저장 장치를 제어하여, 상기 제2 저장 장치에 저장된 데이터를 상기 통합 모듈 인터페이스에 전송하는 단계를 포함하고
    상기 제1 DMA 동작은,
    상기 제1 저장 장치를 제어하여, 상기 제2 저장 장치로부터 상기 통합 모듈 인터페이스에 전송된 상기 데이터를 상기 제1 저장 장치에 전송하는 단계를 포함하는 것을 특징으로 하는 컴퓨팅 시스템 동작 방법.
KR1020140083900A 2014-07-04 2014-07-04 컴퓨팅 시스템 및 이의 동작 방법. KR20160007859A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020140083900A KR20160007859A (ko) 2014-07-04 2014-07-04 컴퓨팅 시스템 및 이의 동작 방법.
US14/791,282 US20160004655A1 (en) 2014-07-04 2015-07-03 Computing system and operating method of the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140083900A KR20160007859A (ko) 2014-07-04 2014-07-04 컴퓨팅 시스템 및 이의 동작 방법.

Publications (1)

Publication Number Publication Date
KR20160007859A true KR20160007859A (ko) 2016-01-21

Family

ID=55017104

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140083900A KR20160007859A (ko) 2014-07-04 2014-07-04 컴퓨팅 시스템 및 이의 동작 방법.

Country Status (2)

Country Link
US (1) US20160004655A1 (ko)
KR (1) KR20160007859A (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230132931A1 (en) * 2021-11-01 2023-05-04 Advanced Micro Devices, Inc. Hardware management of direct memory access commands

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4538224A (en) * 1982-09-30 1985-08-27 At&T Bell Laboratories Direct memory access peripheral unit controller
US6260081B1 (en) * 1998-11-24 2001-07-10 Advanced Micro Devices, Inc. Direct memory access engine for supporting multiple virtual direct memory access channels
US20040093439A1 (en) * 2002-09-24 2004-05-13 Rohm Co., Ltd Data processing control apparatus and DMA controller
WO2013101053A1 (en) * 2011-12-29 2013-07-04 Intel Corporation Non-volatile ram disk

Also Published As

Publication number Publication date
US20160004655A1 (en) 2016-01-07

Similar Documents

Publication Publication Date Title
US8386666B2 (en) System and method for peripheral device communications
US11231864B2 (en) Memory access technology and computer system
EP2263155B1 (en) Direct data transfer between slave devices
CN110309088B (zh) Zynq fpga芯片及其数据处理方法、存储介质
KR102427550B1 (ko) 재구성 가능한 멀티 포트들을 구비한 PCIe 스토리지 시스템을 위한 서비스 품질을 인식하는 입출력 관리
US20160203091A1 (en) Memory controller and memory system including the same
TWI610179B (zh) 主機裝置與資料傳輸速率控制方法
JP2014059876A5 (ja) ホスト、不揮発性メモリ装置、及び不揮発性メモリカードシステム
JP2007087388A (ja) メモリコントローラ及びそれを含んだデータ処理システム
WO2016127552A1 (zh) 一种直接内存存取dma控制器及数据传输的方法
US10740000B2 (en) Adaptive transaction layer packet for latency balancing
KR102168487B1 (ko) 높은 클럭 속도에서 연속하는 판독 버스트 지원
CN102314400B (zh) 一种分散聚合式dma方法及装置
US11314418B2 (en) Extensible storage system and method
US8335867B1 (en) Method and apparatus for reducing host processor activity during interaction with peripheral devices
US10860507B2 (en) Electronic systems having serial system bus interfaces and direct memory access controllers and methods of operating the same
US8891523B2 (en) Multi-processor apparatus using dedicated buffers for multicast communications
KR20160007859A (ko) 컴퓨팅 시스템 및 이의 동작 방법.
US9087050B2 (en) Memory controller and operating method thereof
US9390775B2 (en) Reference voltage setting circuit and method for data channel in memory system
EP1955172B1 (en) Method and apparatus for data transfer
US20210294758A1 (en) Systems and methods for queuing device management configuration requests
US20120124272A1 (en) Flash memory apparatus
US20220188251A1 (en) Operating method of transaction accelerator, operating method of computing device including transaction accelerator, and computing device including transaction accelerator
KR20120066999A (ko) 다이렉트 메모리 액세스 컨트롤러 및 그것의 동작 방법

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid