(19) 대한민국특허청(KR) (12) 공개특허공보(A)
(11) 공개번호 10-2013-0084079 (43) 공개일자 2013년07월24일 (51) 국제특허분류(Int. Cl.)
G06F 13/14 (2006.01) G06F 13/38 (2006.01) G06F 12/00 (2006.01)
(21) 출원번호 10-2012-0004809 (22) 출원일자 2012년01월16일 심사청구일자 없음
(71) 출원인
한국전자통신연구원
대전광역시 유성구 가정로 218 (가정동) (72) 발명자
박현구
대전광역시 서구 둔산동 939번지 매그놀리아 808 호
이석규
대전광역시 유성구 전민동 엑스포아파트 506동 1002호
(74) 대리인 특허법인무한 전체 청구항 수 : 총 8 항
(54) 발명의 명칭 SDIO 인터페이스를 사용한 비순차적 데이터 전송 장치 및 방법
(57) 요 약
메모리에 비순차적으로 저장된 데이터를 전송하는 장치 및 방법이 개시된다.
데이터 전송 장치는 데이터에 전송 순서 정보를 매핑하는 순서 정보 매핑부;
전송 순서 정보에 따라 데이터의 주소들을 순차적으로 저장한 주소 리스트를 생성하는 주소 리스트 생성부; 및 주소 리스트에 주소가 저장된 순서에 따라 각 주소에 대응하는 데이터를 전송하는 데이터 전송부를 포함할 수 있 다.
대 표 도
- 도4특허청구의 범위
청구항 1데이터에 전송 순서 정보를 매핑하는 순서 정보 매핑부;
전송 순서 정보에 따라 데이터의 주소들을 순차적으로 저장한 주소 리스트를 생성하는 주소 리스트 생성부; 및 주소 리스트에 주소가 저장된 순서에 따라 각 주소에 대응하는 데이터를 전송하는 데이터 전송부
를 포함하는 데이터 전송 장치.
청구항 2 제1항에 있어서,
상기 주소 리스트 생성부는,
데이터에 매핑된 전송 순서 정보를 사용하여 데이터의 전송 순서를 식별하고, 식별한 전송 순서에 따라 주소 리 스트에서 데이터의 주소가 저장될 위치를 결정하는 것을 특징으로 하는 데이터 전송 장치.
청구항 3 제1항에 있어서,
상기 순서 정보 매핑부는,
데이터가 SDIO(Secure Digital I/O) 인터페이스에 의하여 메모리에 저장된 순서와 각 데이터가 저장된 주소의 순서를 비교하고, 메모리에 저장된 순서와 각 데이터가 저장된 주소의 순서가 다른 경우, 데이터에 전송 순서 정보를 매핑하는 것을 특징으로 하는 데이터 전송 장치.
청구항 4 제3항에 있어서,
상기 순서 정보 매핑부는,
각 데이터가 메모리에 저장된 순서에 따라 각 데이터의 전송 순서를 식별하고, 식별한 전송 순서에 따라 데이터 에 전송 순서 정보를 매핑하는 것을 특징으로 하는 데이터 전송 장치.
청구항 5
데이터에 전송 순서 정보를 매핑하는 단계;
전송 순서 정보에 따라 데이터의 주소들을 순차적으로 저장한 주소 리스트를 생성하는 단계; 및 주소 리스트에 주소가 저장된 순서에 따라 각 주소에 대응하는 데이터를 전송하는 단계
를 포함하는 데이터 전송 방법.
청구항 6 제5항에 있어서,
상기 주소 리스트를 생성하는 단계는,
데이터에 매핑된 전송 순서 정보를 사용하여 데이터의 전송 순서를 식별하는 단계; 및 식별한 전송 순서에 따라 주소 리스트에서 데이터의 주소가 저장될 위치를 결정하는 단계 를 포함하는 데이터 전송 방법.
청구항 7
제5항에 있어서,
상기 전송 순서 정보를 매핑하는 단계는,
데이터가 SDIO(Secure Digital I/O) 인터페이스에 의하여 메모리에 저장된 순서와 각 데이터가 저장된 주소의 순서를 비교하는 단계; 및
메모리에 저장된 순서와 각 데이터가 저장된 주소의 순서가 다른 경우, 데이터에 전송 순서 정보를 매핑하는 단 계
를 포함하는 데이터 전송 방법.
청구항 8 제7항에 있어서,
상기 전송 순서 정보를 매핑하는 단계는,
각 데이터가 메모리에 저장된 순서에 따라 각 데이터의 전송 순서를 식별하는 단계; 및 식별한 전송 순서에 따라 데이터에 전송 순서 정보를 매핑하는 단계
를 포함하는 데이터 전송 방법.
명 세 서 기 술 분 야
본 발명은 메모리에 비순차적으로 저장된 데이터를 전송하는 장치 및 방법에 관한 것으로, 보다 상세하게는 전 [0001]
송 순서에 따라 데이터가 저장된 주소를 정렬하는 과정 없이도 비 순차로 저장된 데이터를 전송 순서에 따라 전 송하는 데이터 전송 장치 및 방법에 관한 것이다.
배 경 기 술
SDIO(Secure Digital I/O) 인터페이스에서 데이터 전송을 하는 경우, SDIO 인터페이스는 데이터를 수신한 순서 [0002]
에 따라 해당 데이터를 메모리의 주소에 순차적으로 저장하고, 데이터를 전송할 경우, 주소의 순서에 따라 데이 터를 전송하고 있다.
그러나, 전송이 끝난 메모리의 주소가 비워 지는 시간이 다르거나, 사용자의 요구나 다양한 인터럽트에 의하여 [0003]
메모리에서 중간 주소에 저장된 데이터가 먼저 전송된 경우, 데이터가 저장된 메모리의 주소 순서와 데이터가 전송될 순서가 다른 경우가 발생할 수 있다.
이때, 종래의 SDIO 인터페이스의 데이터 전송 장치는 메모리에 저장된 데이터를 정렬하여 데이터가 저장된 메모 [0004]
리의 주소 순서와 데이터가 전송될 순서를 일치시키고 있었다.
그러나, 메모리에 저장된 데이터를 데이터가 저장된 메모리의 주소 순서와 데이터가 전송될 순서를 일치시키기 [0005]
위하여 정렬하는 과정은 데이터의 개수가 n일 경우 O(nlogn)회의 데이터 식별/저장(read/write)이 발생하게 되 므로 시간이 지연되게 된다.
따라서, 메모리에 데이터가 비순차적으로 저장된 경우, 데이터 정렬 없이도 데이터가 전송될 순서에 따라 데이 [0006]
터를 전송 할 수 있는 방법이 요청되고 있다.
발명의 내용 해결하려는 과제
본 발명은 데이터가 저장된 주소를 정렬하는 과정 없이도 비 순차로 저장된 데이터를 전송 순서에 따라 전송하 [0007]
는 장치 및 방법을 제공한다.
과제의 해결 수단
본 발명의 일실시예에 따른 데이터 전송 장치는 데이터에 전송 순서 정보를 매핑하는 순서 정보 매핑부; 전송 [0008]
순서 정보에 따라 데이터의 주소들을 순차적으로 저장한 주소 리스트를 생성하는 주소 리스트 생성부; 및 주소 리스트에 주소가 저장된 순서에 따라 각 주소에 대응하는 데이터를 전송하는 데이터 전송부를 포함할 수 있다.
본 발명의 일실시예에 따른 데이터 전송 방법은 데이터에 전송 순서 정보를 매핑하는 단계; 전송 순서 정보에 [0009]
따라 데이터의 주소들을 순차적으로 저장한 주소 리스트를 생성하는 단계; 및 주소 리스트에 주소가 저장된 순 서에 따라 각 주소에 대응하는 데이터를 전송하는 단계를 포함할 수 있다.
발명의 효과
본 발명의 일실시예에 의하면, 데이터의 전송 순서를 식별하고, 전송 순서가 포함된 주소 리스트를 생성함으로 [0010]
써, 전송 순서에 따라 데이터가 저장된 주소를 정렬하는 과정 없이도 비 순차로 저장된 데이터를 전송 순서에 따라 전송할 수 있다.
도면의 간단한 설명
도 1은 본 발명의 일실시예에 따른 데이터 전송 장치와 다른 장치 간의 관계를 나타내는 도면이다.
[0011]
도 2는 본 발명의 일실시예에 따른 데이터 전송 장치를 도시한 블록 다이어그램이다.
도 3은 본 발명의 일실시예에 따른 순서 정보 매핑부가 전송 순서 정보를 매핑한 데이터의 일례이다.
도 4는 본 발명의 일실시예에 따른 주소 리스트 생성부가 주소 리스트를 생성하는 과정의 일례이다.
도 5는 본 발명의 일실시예에 따른 데이터 전송 방법을 도시한 플로우차트이다.
발명을 실시하기 위한 구체적인 내용
이하, 본 발명의 실시예를 첨부된 도면을 참조하여 상세하게 설명한다. 본 발명의 일실시예에 따른 데이터 전 [0012]
송 방법은 데이터 전송 장치에 의해 수행될 수 있다.
도 1은 본 발명의 일실시예에 따른 데이터 전송 장치(100)와 다른 장치 간의 관계를 나타내는 도면이다.
[0013]
본 발명의 일실시예에 따른 데이터 전송 장치(100)는 도 1에 도시된 바와 같이 SDIO(Secure Digital I/O) 인터 [0014]
페이스를 사용하는 디바이스(110)의 디바이스 메모리(111)에 저장된 데이터를 호스트(120)의 호스트 메모리 (121)로 전송하거나, SDIO 인터페이스를 사용하는 호스트(120)의 호스트 메모리(121) 에 저장된 데이터를 디바 이스(110)의 디바이스 메모리(111)로 전송할 수 있다. 이때, SDIO 인터페이스는 데이터를 수신한 순서에 따라 해당 데이터를 메모리의 주소에 순차적으로 저장하고, 데이터를 전송할 경우, 주소의 순서에 따라 데이터를 전 송할 수 있다. 즉, 데이터를 메모리의 주소와 다른 순서로 전송하고자 하는 경우, 전송 순서에 따라 데이터의 주소를 정렬해야 한다.
그러나, 데이터 전송 장치(100)는 사용자의 요청에 따라 디바이스 메모리(111)에 저장된 데이터를 비 순차로 호 [0015]
스트(120)의 호스트 메모리(121)로 전송해야 하는 경우, 데이터의 전송 순서와 해당 데이터의 주소를 포함하는 주소 리스트를 생성하고, 주소 리스트를 사용하여 데이터를 전송할 수 있다.
즉, 데이터 전송 장치(100)는 전송 순서가 포함된 주소 리스트를 생성함으로써, 전송 순서에 따라 데이터가 저 [0016]
장된 주소를 정렬하는 과정 없이도 메모리의 주소와 달리 비 순차로 데이터를 전송할 수 있다.
도 2는 본 발명의 일실시예에 따른 데이터 전송 장치(100)를 도시한 블록 다이어그램이다.
[0017]
도 2을 참고하면, 본 발명의 일실시예에 따른 데이터 전송 장치(100)는 순서 정보 매핑부(210), 주소 리스트 생 [0018]
성부(220), 및 데이터 전송부(230)를 포함할 수 있다.
순서 정보 매핑부(210)는 디바이스 메모리(111), 또는 호스트 메모리(121)에 저장된 데이터에 전송 순서 정보를 [0019]
매핑할 수 있다.
이때, 순서 정보 매핑부(210)는 인터페이스에 의하여 메모리에 저장된 순서와 각 데이터가 저장된 주소의 순서 [0020]
를 비교하고, 메모리에 저장된 순서와 각 데이터가 저장된 주소의 순서가 다른 경우, 데이터에 전송 순서 정보 를 매핑할 수 있다. 또한, 순서 정보 매핑부(210)는 각 데이터가 메모리에 저장된 순서에 따라 각 데이터의 전 송 순서를 식별하고, 식별한 전송 순서에 따라 데이터에 전송 순서 정보를 매핑할 수 있다.
주소 리스트 생성부(220)는 순서 정보 매핑부(210)가 데이터에 매핑한 전송 순서 정보에 따라 데이터의 주소들 [0021]
을 순차적으로 저장한 주소 리스트를 생성할 수 있다. 이때, 주소 리스트 생성부(220)는 데이터에 매핑된 전송 순서 정보를 사용하여 데이터의 전송 순서를 식별하고, 식별한 전송 순서에 따라 주소 리스트에서 데이터의 주 소가 저장될 위치를 결정할 수 있다.
구체적으로, 주소 리스트 생성부(220)는 디바이스 메모리(111), 또는 호스트 메모리(121)에 저장된 데이터의 개 [0022]
수에 대응하는 메모리를 할당하여 주소 리스트를 생성할 수 있다. 이때, 주소 리스트의 0번째 주소를 MEM이라 고 할 수 있다.
다음으로, 주소 리스트 생성부(220)는 디바이스 메모리(111), 또는 호스트 메모리(121)의 0번 주소부터 데이터 [0023]
가 저장된 마지막 주소까지 순차적으로 매핑된 전송 순서 정보인 ORDER를 식별할 수 있다. 이때, 전송 순서가 마지막인 전송 순서 정보를 LASTORDER 라 할 수 있다.
이때, 주소 리스트 생성부(220)는 MEM + INDEX 주소에 ORDER를 식별한 메모리 주소 값을 저장하여 주소 리스트 [0024]
를 생성할 수 있다. 이때, INDEX는 ORDER 에서 LASTORDER 를 뺀 값일 수 있다.
데이터 전송부(230)는 주소 리스트에 주소가 저장된 순서에 따라 각 주소에 대응하는 데이터를 전송할 수 있다.
[0025]
구체적으로, 데이터 전송부(230)는 주소 리스트의 0번째 index에 저장된 메모리 주소 값부터 주소 리스트의 N번 [0026]
째 index에 저장된 메모리 주소 값까지를 순차적으로 식별하고, 식별한 주소 값에 대응하는 데이터를 전송함으 로써, 순서 정보에 따라 데이터를 전송할 수 있다. 이때, 데이터 전송부(230)는 마지막으로 데이터를 전송한 순서 값을 LASTORDER에 저장할 수 있다.
이때, 주소 리스트 생성부(220)와 데이터 전송부(230)는 표1과 같은 PSEUDO 코드로 구성될 수 있다.
[0027]
표 1
[0028]
도 3은 본 발명의 일실시예에 따른 순서 정보 매핑부(210)가 전송 순서 정보를 매핑한 데이터의 일례이다.
[0029]
본 발명의 일실시예에 따른 순서 정보 매핑부(210)는 도 3에 도시된 바와 같이 메모리 주소(Address)(310)에 저 [0030]
장된 데이터(320)에 전송 순서 정보(Order)(330)를 매핑한 데이터의 일례이다. 이때, 전송 순서 정보(330)는 사용자가 설정한 전송 순서 정보일 수도 있고, 디바이스 메모리(111), 또는 호스트 메모리(121)에 각 데이터가 저장된 순서일 수도 있다.
즉, 사용자에 의하여 수동으로 디바이스 메모리(111), 또는 호스트 메모리(121)에 저장된 데이터 중 하나가 전 [0031]
송 된 경우, 이후에 디바이스 메모리(111), 또는 호스트 메모리(121)에 저장되는 데이터는 주소 값의 순서와 다 를 수 있다. 이때, 순서 정보 매핑부(210)는 디바이스 메모리(111), 또는 호스트 메모리(121)에 데이터가 저장 된 순서에 따라 각 데이터에 전송 순서 정보를 매핑함으로써, 각 데이터가 저장된 순서로 전송되도록 할 수 있 다.
예를 들어 주소 0내지 주소 5에 데이터가 순차적으로 저장된 상태에서 사용자가 주소 2에 저장된 데이터를 수동 [0032]
으로 전송한 경우, 이후에 저장되는 데이터(331)는 빈 공간인 주소 2에 저장될 수 있다. 그러나, 데이터(331) 는 주소 0, 주소 1, 주소 3, 주소 4에 저장된 데이터보다 나중에 저장되었으므로, 순서 정보 매핑부(210)는 데 이터(331)에 주소 0, 주소 1, 주소 3, 주소 4보다 늦은 전송 순서 정보를 매핑할 수 있다. 이때, 주소 0, 주소 1, 주소 2, 주소 3, 주소 4에 매핑된 전송 순서 정보는 주소 2에 저장된 데이터(331)이 가장 늦어야 하므로 각 각 0, 1, 4, 2, 3일 수 있다.
다음으로, 주소 1에 저장된 데이터가 사용자나 인터럽트에 의하여 전송된 경우, 이후에 저장되는 데이터(332)는 [0033]
빈 공간인 주소 1에 저장될 수 있다. 그러나, 데이터(332)는 주소 0, 주소 3, 주소 4에 저장된 데이터는 물론
데이터(331)보다도 나중에 저장되었으므로, 순서 정보 매핑부(210)는 데이터(332)에 주소 0, 주소 3, 주소 4 및 데이터(331)보다 늦은 전송 순서 정보를 매핑할 수 있다. 이때, 주소 0, 주소 1, 주소 2, 주소 3, 주소 4에 매 핑된 전송 순서 정보는 별도의 변경이 없었던 주소 0, 주소 3, 주소 4가 순차적으로 설정되고, 주소 1에 저장된 데이터(332)이 가장 늦어야 하므로 도 3에 도시된 바와 같이 각각 0, 4, 3, 1, 2일 수 있다.
도 4는 본 발명의 일실시예에 따른 주소 리스트 생성부(220)가 주소 리스트를 생성하는 과정의 일례이다.
[0034]
먼저, 주소 리스트 생성부(220)는 디바이스 메모리(111), 또는 호스트 메모리(121)의 0번째 주소(411)의 데이터 [0035]
에 매핑된 전송 순서 정보를 식별할 수 있다. 이때, 식별한 전송 순서 정보는 도 4에 도시된 바와 같이 0이므 로, 주소 리스트 생성부(220)는 주소 리스트의 0번째 주소(412)에 디바이스 메모리(111), 또는 호스트 메모리 (121)의 0번째 주소(411)를 저장할 수 있다(410).
다음으로, 주소 리스트 생성부(220)는 디바이스 메모리(111), 또는 호스트 메모리(121)의 1번째 주소(421)의 데 [0036]
이터에 매핑된 전송 순서 정보를 식별할 수 있다. 이때, 식별한 전송 순서 정보는 도 4에 도시된 바와 같이 4 이므로, 주소 리스트 생성부(220)는 주소 리스트의 4번째 주소(422)에 디바이스 메모리(111), 또는 호스트 메모 리(121)의 1번째 주소(421)를 저장할 수 있다(420).
그 다음으로, 주소 리스트 생성부(220)는 디바이스 메모리(111), 또는 호스트 메모리(121)의 2번째 주소(431)의 [0037]
데이터에 매핑된 전송 순서 정보를 식별할 수 있다. 이때, 식별한 전송 순서 정보는 도 4에 도시된 바와 같이 3이므로, 주소 리스트 생성부(220)는 주소 리스트의 3번째 주소(432)에 디바이스 메모리(111), 또는 호스트 메 모리(121)의 2번째 주소(431)를 저장할 수 있다(430).
다음으로, 주소 리스트 생성부(220)는 디바이스 메모리(111), 또는 호스트 메모리(121)의 3번째 주소(441)의 데 [0038]
이터에 매핑된 전송 순서 정보를 식별할 수 있다. 이때, 식별한 전송 순서 정보는 도 4에 도시된 바와 같이 1 이므로, 주소 리스트 생성부(220)는 주소 리스트의 1번째 주소(442)에 디바이스 메모리(111), 또는 호스트 메모 리(121)의 3번째 주소(441)를 저장할 수 있다(440).
마지막으로, 주소 리스트 생성부(220)는 디바이스 메모리(111), 또는 호스트 메모리(121)의 4번째 주소(451)의 [0039]
데이터에 매핑된 전송 순서 정보를 식별할 수 있다. 이때, 식별한 전송 순서 정보는 도 4에 도시된 바와 같이 2이므로, 주소 리스트 생성부(220)는 주소 리스트의 2번째 주소(452)에 디바이스 메모리(111), 또는 호스트 메 모리(121)의 4번째 주소(451)를 저장할 수 있다(450).
이때, 완성된 주소 리스트는 도 4에 도시된 바와 같이 0,3,4,2,1의 순서로 주소가 저장되어 있다. 따라서, 데 [0040]
이터 전송부(230)는 0번째 주소(411)의 데이터, 3번째 주소(441)의 데이터, 4번째 주소(451)의 데이터, 2번째 주소(431)의 데이터, 1번째 주소(421)의 데이터의 순서로 데이터를 전송할 수 있다.
즉, 데이터 전송부(230)는 데이터가 저장된 주소의 순차와는 비 순차로 데이터를 전송할 수 있다. 구체적으로, [0041]
데이터 전송부(230)는 데이터가 저장된 주소를 정렬하지 않고도, 데이터가 저장된 순서, 또는 사용자가 원하는 순서에 따라 데이터를 전송할 수 있다.
도 5는 본 발명의 일실시예에 따른 데이터 전송 방법을 도시한 플로우차트이다.
[0042]
단계(S510)에서 순서 정보 매핑부(210)는 디바이스 메모리(111), 또는 호스트 메모리(121)에 저장된 데이터에 [0043]
전송 순서 정보를 매핑할 수 있다.
단계(S520)에서 주소 리스트 생성부(220)는 단계(S510)에서 데이터에 매핑한 전송 순서 정보에 따라 데이터의 [0044]
주소들을 순차적으로 저장한 주소 리스트를 생성할 수 있다.
단계(S530)에서 데이터 전송부(230)는 단계(S520)에서 생성한 주소 리스트에 주소가 저장된 순서에 따라 각 주 [0045]
소에 대응하는 데이터를 전송할 수 있다.
본 발명은 데이터의 전송 순서를 식별하고, 전송 순서가 포함된 주소 리스트를 생성함으로써, 전송 순서에 따라 [0046]
데이터가 저장된 주소를 정렬하는 과정 없이도 비 순차로 저장된 데이터를 전송 순서에 따라 전송할 수 있다.
이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 [0047]
것은 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.
그러므로, 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐 아니라 [0048]
이 특허청구범위와 균등한 것들에 의해 정해져야 한다.
부호의 설명
100: 데이터 전송 장치 [0049]
210: 순서 정보 매핑부 220: 주소 리스트 생성부 230: 데이터 전송부