KR100463205B1 - 시퀀셜 버퍼를 내장하여 디에스피의 데이터 억세스 성능을향상시키는 컴퓨터 시스템 및 그 컴퓨터 시스템의 데이터억세스 방법 - Google Patents

시퀀셜 버퍼를 내장하여 디에스피의 데이터 억세스 성능을향상시키는 컴퓨터 시스템 및 그 컴퓨터 시스템의 데이터억세스 방법 Download PDF

Info

Publication number
KR100463205B1
KR100463205B1 KR10-2003-0009157A KR20030009157A KR100463205B1 KR 100463205 B1 KR100463205 B1 KR 100463205B1 KR 20030009157 A KR20030009157 A KR 20030009157A KR 100463205 B1 KR100463205 B1 KR 100463205B1
Authority
KR
South Korea
Prior art keywords
data
sequential buffer
external memory
buffer
dsp core
Prior art date
Application number
KR10-2003-0009157A
Other languages
English (en)
Other versions
KR20040073167A (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 삼성전자주식회사
Priority to KR10-2003-0009157A priority Critical patent/KR100463205B1/ko
Priority to US10/762,170 priority patent/US7159078B2/en
Priority to JP2004025294A priority patent/JP4459641B2/ja
Priority to TW093102576A priority patent/TWI272482B/zh
Priority to CNB2004100282057A priority patent/CN100336038C/zh
Publication of KR20040073167A publication Critical patent/KR20040073167A/ko
Application granted granted Critical
Publication of KR100463205B1 publication Critical patent/KR100463205B1/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • G06F9/30047Prefetch instructions; cache control instructions
    • 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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0888Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using selective caching, e.g. bypass
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3877Concurrent instruction execution, e.g. pipeline, look ahead using a slave processor, e.g. coprocessor
    • G06F9/3879Concurrent instruction execution, e.g. pipeline, look ahead using a slave processor, e.g. coprocessor for non-native instruction execution, e.g. executing a command; for Java instruction set

Abstract

시퀀셜 버퍼를 내장하여 DSP의 데이터 억세스 성능을 향상시키는 컴퓨터 시스템 및 그 컴퓨터 시스템의 데이터 억세스 방법이 개시된다. 본 발명의 컴퓨터 시스템은 CPU 코어, DSP 코어, 데이터 캐시, 제1 및 제2 시퀀셜 버퍼 모듈, 그리고 외장 메모리를 포함한다. CPU 코어는 일련의 명령들을 실행하고, DSP 코어는 CPU 코어에 의한 명령들에 따라 데이터들을 처리한다. 데이터 캐시는 DSP 코어로/로부터 데이터 처리에 따른 임시 데이터를 저장한다. 제1 시퀀셜 버퍼 모듈은 DSP 코어로 수신되는 입력 데이터를 저장하고, 제2 시퀀셜 버퍼 모듈은 DSP 코어로부터 출력되는 출력 데이터를 저장한다. 외장 메모리는 임시 데이터, 입력 데이터 및 출력 데이터를 저장한다. 따라서, 본 발명의 컴퓨터 시스템에 의하면, DSP 코어로/로부터 전달되는 입력 또는 출력 데이터를 데이터 캐시를 사용하지 않고 시퀀셜 버퍼를 사용하여 시퀀셜하게 억세스하고, 외장 메모리 내에 서로 분리된 입력 데이터 영역, 임시 데이터 영역, 그리고 출력 데이터 영역을 사용하기 때문에, 데이터 캐시의 기능과 DSP 성능이 저하되지 않는다.

Description

시퀀셜 버퍼를 내장하여 디에스피의 데이터 억세스 성능을 향상시키는 컴퓨터 시스템 및 그 컴퓨터 시스템의 데이터 억세스 방법{Computer system embedded sequantial buffer for improving DSP data access performance and data access method thereof}
본 발명은 컴퓨터 시스템에 관한 것으로, 특히 시퀀셜 버퍼를 내장하여 DSP의 데이터 억세스 성능을 향상시키는 컴퓨터 시스템 및 그 컴퓨터 시스템의 데이터 억세스 방법에 관한 것이다.
최근, 프로세서, 내장 메모리, 복수의 주변기기 및 외부 버스 인터페이스들이 하나의 칩에 포함되어 집적화된 시스템-온-칩(System-On-Chip: 이하 "SOC"라고 칭한다)이 발전하고 있다. SOC는 하나의 작은 컴퓨터 시스템으로 여겨진다. SOC에는 일반적으로 2개 이상의 프로세서가 내장되는 데, 제어를 담당하는 CPU(CenteralProcessing Unit)와 데이터 처리를 담당하는 DSP(Digital Signal Processor)가 그것이다. DSP는 많은 양의 데이터를 입력 받아서 일정한 처리를 한 후, 많은 양의 데이터를 출력하는 기능을 수행한다.
도 1은 종래의 기술에 따른 SOC 내 DSP의 데이터 처리를 나타내는 도면이다. 이를 참조하면, SOC(110)에는 CPU 코어(112), DSP 코어(114), 데이터 캐시(116)를 포함한다. 코어란 미리 설계된 기능 블락들을 일컫는 말이다. DSP 코어(114)는 데이터 캐시(116)를 통해 외장 메모리(120)를 억세스(access)한다. 외장 메모리(120)에는 DSP 코어(114)가 억세스 가능한 메모리 영역들이 할당되는 데, 입력 데이터 영역(122)과 임시 데이터 영역(124), 그리고 출력 데이터 영역(126)으로 구분되어진다. 입력 데이터 영역(122)의 데이터는 DSP 코어(114)에 의한 독출이 가능한 데이터이고, 출력 데이터 영역(126)의 데이터는 DSP 코어(114)로부터 출력되어 저장(wrire)되는 데이터이다. 임시 데이터 영역(124)의 데이터는 DSP 코어(114)로/부터 데이터 독출/저장이 가능한 데이터이다. 데이터 캐시(116)는 DSP 코어(114)와 외장 메모리(120) 사이에 위치하며, 외장 메모리(120)에 비해 상대적으로 작은 메모리 용량과 빠른 억세스 시간을 갖는다. 데이터 캐시(116)에는 입력 데이터 영역(122)의 데이터, 임시 데이터 영역(124)의 데이터, 그리고 출력 데이터 영역(126)의 데이터들이 일시적으로 저장되었다가 DSP 코어(114) 또는 외장 메모리(120)로 내보내진다.
한편, 데이터 캐시(116)에 저장되는 데이터는 일명 "히트율(hit ratio)"를 올리기 위하여 빈번히 사용되는 데이터일 것이 요구된다. 그런데, 입력 데이터 영역(122)의 데이터나 출력 데이터 영역(126)의 데이터는 데이터 독출 또는 저장을 위해 거의 한번 밖에 사용되지 않는 데이터임에도 불구하고, 데이터 캐시(116)에 저장된다는 것은 데이터 캐시(116)의 기능을 떨어뜨리는 요인이 된다. 이와 아울러 외장 메모리(120)의 입력 데이터 영역(122), 임시 데이터 영역(124), 그리고 출력 데이터 영역(126)은 DSP 코어(114)가 억세스할 수 있는 하나의 데이터 어드레스 공간을 분할하여 사용하는 것으로, 입력 데이터 영역(122)과 출력 데이터 영역(1260)이 커지게 되면 임시 데이터 영역(124)이 상대적으로 작아져, DSP 코어(114)가 처리해야 할 데이터가 많을 경우 DSP 성능을 떨어뜨리는 문제점이 된다.
따라서, 데이터 캐시의 기능과 DSP 성능을 떨어뜨리지 않는 컴퓨터 시스템이 불가피하게 요구된다.
본 발명의 목적은 시퀀셜 버퍼를 내장하여 DSP의 데이터 억세스 성능을 향상시키는 컴퓨터 시스템을 제공하는 데 있다.
본 발명의 다른 목적은 상기 컴퓨터 시스템의 데이터 억세스 방법을 제공하는 데 있다.
도 1은 종래의 기술에 따른 SOC 내 DSP의 데이터 처리를 나타내는 도면이다.
도 2는 본 발명의 일실시예에 따른 컴퓨터 시스템을 나타내는 도면이다.
도 3은 도 2의 시퀀셜 버퍼 모듈들을 구체적으로 나타내는 도면이다.
상기 목적을 달성하기 위하여, 본 발명의 컴퓨터 시스템는 일련의 명령들을 실행하는 CPU 코어와, CPU 코어에 의한 명령들에 따라 데이터들을 처리하는 DSP 코어와, DSP 코어로/로부터 데이터 처리에 따른 임시 데이터를 저장하는 데이터 캐시와, DSP 코어로 수신되는 입력 데이터를 저장하는 제1 시퀀셜 버퍼 모듈와, DSP 코어로부터 출력되는 출력 데이터를 저장하는 제2 시퀀셜 버퍼 모듈과, 그리고 임시 데이터, 입력 데이터 및 출력 데이터를 저장하는 외장 메모리를 포함한다. CPU 코어, DSP 코어, 데이터 캐시, 그리고 제1 및 제2 시퀀셜 버퍼 모듈은 하나의 칩에 집적화되는 시스템-온-칩으로 구현된다.
바람직하기로, 제1 및 제2 시퀀셜 버퍼 모듈은 CPU 코어에서 설정되는 외장 메모리의 어드레스를 저장하는 어드레스 버퍼와, 외장 메모리 어드레스를 1씩 증가시키는 인크리먼트부와, 외장 메모리 어드레스의 하위 비트에 따라 시퀀셜 버퍼를 어드레싱하는 먹스부와. 그리고 먹스부 출력에 응답하여 입력 데이터 또는 출력 데이터를 저장하는 시퀀셜 버퍼를 포함한다. 시퀀셜 버퍼는 데이터 레지스터이고, 그 내부에 소정의 유효 비트를 두어 시퀀셜 버퍼가 비워있는 지 아니면 채워져있는 지 여부를 알린다. 외장 메모리는 임시 데이터를 저장하는 임시 데이터 영역과, 입력 데이터를 저장하는 입력 데이터 영역과, 출력 데이터를 저장하는 출력 데이터 영역을 포함하고, 임시 데이터 영역, 입력 데이터 영역, 그리고 출력 데이터 영역은 서로 분리되어 있다.
CPU 코어는 시퀀셜 버퍼가 비어 있으면 외장 메모리에 저장된 입력 데이터를 순차적으로 읽어와 상기 시퀀셜 버퍼에 채우도록 지시하는 프리-필 명령을 실행하고, 시퀀셜 버퍼가 채워져 있으면 시퀀셜 버퍼에 쓰여진 데이터를 외장 메모리에 순차적으로 저장하는 포스트-플러쉬 명령을 실행한다. 시퀀셜 버퍼는 DSP 코어가 시퀀셜 버퍼의 데이터를 읽어가서 시퀀셜 버퍼가 비어있어 있음을 인식하여 외장 메모리의 입력 데이터를 시퀀셜 버퍼로 채우는 자동-필 동작을 수행하고, DSP 코어의 데이터가 시퀀셜 버퍼에 쓰여져 시퀀셜 버퍼가 채워져 있음을 인식하여 시퀀셜 버퍼의 데이터를 외장 메모리에 저장하는 자동-플러쉬 동작을 수행한다.
상기 다른 목적을 달성하기 위하여, 본 발명은 CPU 코어, DSP 코어, 데이터 캐시, 시퀀셜 버퍼, 그리고 외장 메모리를 포함하는 컴퓨터 시스템의 데이터 억세스 방법에 있어서, DSP 코어의 데이터가 임시 데이터이면 데이터 캐시를 통하여 외장 메모리의 임시 데이터 영역으로/으로부터 전달되는 단계와, 시퀀셜 버퍼가 비어 있으면 외장 메모리에 저장된 입력 데이터를 순차적으로 읽어와 시퀀셜 버퍼에 채우도록 지시하는 프리-필 명령을 실행하는 단계와, 시퀀셜 버퍼가 채워져 있으면 시퀀셜 버퍼에 쓰여진 출력 데이터를 외장 메모리에 순차적으로 저장하는 포스트-플러쉬 명령을 실행하는 단계와, DSP 코어가 시퀀셜 버퍼의 데이터를 읽어가서 시퀀셜 버퍼가 비어있어 있으면 외장 메모리의 입력 데이터를 시퀀셜 버퍼로 채우는 자동-필 동작을 수행하는 단계와, 그리고 DSP 코어의 데이터가 시퀀셜 버퍼에 쓰여져 시퀀셜 버퍼가 채워져 있으면 시퀀셜 버퍼의 데이터를 외장 메모리에 저장하는 자동-플러쉬 동작을 수행하는 단계를 포함한다. 구비하는 것을 특징으로 하는 컴퓨터 시스템의 데이터 억세스 방법.
따라서, 본 발명에 의하면, DSP 코어로/로부터 전달되는 입력 또는 출력 데이터를 데이터 캐시를 사용하지 않고 시퀀셜 버퍼를 사용하여 시퀀셜하게 억세스하고, DSP 코어의 데이터 타입에 따라 외장 메모리 내에 서로 분리된 입력 데이터 영역, 임시 데이터 영역, 그리고 출력 데이터 영역을 사용하기 때문에, 데이터 캐시의 기능과 DSP 성능이 저하되지 않는다.
이하, 본 발명의 바람직한 실시예의 상세한 설명이 첨부된 도면들을 참조하여 설명될 것이다. 도면들 중 참조부호들 및 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 동일한 참조번호들 및 부호들로 나타내고 있음은 명백하다.
도 2는 본 발명의 일실시예에 따른 컴퓨터 시스템 나타내는 도면이다. 이를 참조하면, 컴퓨터 시스템(200)은 CPU 코어(212), DSP 코어(214), 데이터 캐시(216), 제1 및 제2 시퀀셜 버퍼(218, 219)를 내장한 SOC(210)와 외장 메모리(220)를 포함한다. CPU 코어(212)는 명령 캐시(미도시)로부터 일련의 명령들(sequence of instructions)을 수신하고, 이를 디코딩하여 그 명령에 따른 동작을 수행한다. 여기에서, 본 발명과 관련된 명령은 프리-필(pre-fill) 명령과 포스트-플러쉬(post-flush) 명령이며, CPU 코어(212)가 이 명령들 이외에 다른 명령들을 수행할 수 있음은 물론이다.
DSP 코어(214)는 일반적으로 멀티미디어 응용에 활용되는 데, 멀티미디어 응용에서 다루는 입력 및 출력 데이터는 각 응용에 따라서 정해진 패턴을 갖는 스트림(stream) 형태이다. 명확한 패턴의 스트림 데이터는 한번만 읽혀지고 한번만 저장될 수 있으므로, 본 발명의 시퀀셜 버퍼를 통하여 데이터 처리하는 것이 바람직하다. 대표적인 멀티미디어 응용인 데이터 압축 및 압축 해제 기능을 수행하는 것을 예로들면, DSP 코어(214)는 데이터 압축을 위하여 소스(source) 파일을 불러와 이를 인코딩하여 압축 파일을 생성한다. 그리고 DSP 코어(214)는 압축 해제를 위하여 압축 파일을 불러와 이를 디코딩하여 압축 해제 파일을 생성한다. 여기에서,DSP 코어(214) 입장에서 볼 때 소스 파일 또는 압축 파일은 데이터 압축 또는 압축 해제를 위하여 한번만 입력되어 사용되는 파일들이고, 압축 파일과 압축 해제 파일은 데이터 압축 또는 압축 해제 후 한번만 출력되는 파일들이다. 이처럼 한번만 사용하고 더 이상 사용하지 않는 데이터들, 즉 입력 데이터와 출력 데이터들은 제1 시퀀셜 버퍼 모듈(218)과 제2 시퀀셜 버퍼 모듈(219)을 통하여 외장 메모리(220)로부터/로 전달된다.
외장 메모리(220)는 입력 데이터 영역(222), 임시 데이터 영역(224), 그리고 출력 데이터 영역(226)으로 구분된다. 임시 데이터 영역(224)은 도 1의 데이터 어드레스 공간에 해당하는 영역을, 입력 데이터 영역(222)은 제1 확장된 데디터 영역을, 그리고 출력 데이터 영역(226)은 제2 확장된 데이터 영역으로 각각 할당된다. 이는 도 1에서 DSP 코어(214)가 억세스할 수 있는 외장 메모리(220)의 데이터 어드레스 공간이 하나로 한정되는 것에 비하여, 데이터 타입에 따라 별개로 분리된 데이터 어드레스 공간을 사용함으로 인하여 DPS 성능을 향상시키는 잇점이 된다.
도 3은 도 2의 제1 또는 제2 시퀀셜 메모리 모듈(218, 219)을 구체적으로 나타내는 도면이다. 이를 참조하면, 제1 또는 제2 시퀀셜 메모리 모듈(218, 219)은 어드레스 레지스터(302), 인크리먼트(increment)부(304), 시퀀셜 버퍼(306), 그리고 제1 및 제2 먹스(310, 320)를 포함한다. 어드레스 레지스터(302)는 CPU 코어(212)로부터 설정되는 외장 메모리(220)의 주소를 저장한다. 외장 메모리(220)의 어드레스는 어드레스 버스를 통하여 외장 메모리(220) 내 입력/출력 데이터 영역을 어드레싱한다. 인크리먼트부(304)는 외장 메모리(220) 주소를 1씩 증가시키면서 시퀀셜 버퍼(306) 내부의 어드레스를 지시한다.
시퀀셜 버퍼(306)는 복수개의 데이터가 저장되는 일종의 데이터 레지스터 세트의 일종으로, DSP 코어(214)에서 외장 메모리(220)로, 또는 외장 메모리(220)에서 DSP 코어(214)로 전달되는 데이터를 임시로 저장한다. 시퀀셜 버퍼(306) 내에는 다양한 갯수로 데이터 레지스터를 구비할 수 있는 데, 본 실시예에서는 데이터 레지스터를 구비하는 예에 대하여 기술된다. 4개의 데이터 레지스터는 어드레스 레지스터(302)에 저장된 하위 2 비트를 이용하여 어드레싱된다. 하나의 데이터 레지스터(306)에는 워드 단위의 데이터가 저장되며, 하나의 유효 비트(valid bit, 308)를 두어 해당 데이터 레지스터의 데이터를 읽을 수 있는 지 아니면 해당 레지스터로 데이터를 쓸 수 있는 지 여부를 알린다.
유효 비트(308)는 DSP 코어(214)가 시퀀셜 버퍼(306) 내 해당 데이터 레지스터로 데이터를 쓰면 예컨대, "1"로 설정되고, 그 데이터가 외장 메모리(220)의 출력 데이터 영역(226)에 저장되면 예컨대 "0"으로 설정된다. 그리고 DSP 코어(214)의 요청에 의해 외장 메모리(220)의 입력 데이터 영역(222) 데이터가 시퀀셜 버퍼(306) 내 데이터 레지스터에 채워지면 유효 비트(308)는 예컨대, "1"로 설정되고, 그 데이터가 DSP 코어(214)로 읽혀지면 예컨대, "0"으로 설정된다.
제1 먹스(310)는 어드레스 레지스터(302)의 하위 2 비트에 의해 어드레싱되는 시퀀셜 버퍼(306) 내 데이터 레지스터들로 DSP 코어(214) 데이터를 전송한다. 제2 먹스(320)는 어드레스 레지스터(302)의 하위 2 비트에 의해 어드레싱되는 시퀀셜 버퍼(306) 내 데이터 레지스터들로 외장 메모리(220)의 데이터를 전송한다.
이러한 시퀀셜 버퍼 모듈을 포함하는 본 발명의 컴퓨터 시스템(200)은 다음과 같이 동작된다.
먼저, 어드레스 레지스터(302) 값과 유효 비트(308)을 조합하여 시퀀셜 버퍼(306) 내 데이터 레지스터가 비어있는(empty) 지 아니면 채워져있는(full) 지 여부를 판단한다. DSP 코어(214)로/로부터 데이터 읽기 동작을 수행하기 전에, 프리-필(pre-fill) 동작과 포스트-플러쉬(post-flush) 동작을 수행한다. 프리-필 동작은 시퀀셜 버퍼(306)가 비어(empty) 있으면, CPU 코어(212)의 명령에 의해 지시되는 외장 메모리(220) 내 입력 데이터 영역(222)의 어드레스에 저장된 데이터를 순차적으로 읽어와 시퀀셜 버퍼(306) 내 데이터 레지스터에 채워지는 것을 말한다. 포스트-플러쉬 동작은 시퀀셜 버퍼(306)가 채워져(full) 있으면, 시퀀셜 버퍼(306) 내 데이터 레지스터에 쓰여진 데이터를 CPU 코어(212)의 명령에 의해 지시되는 출력 데이터 영역(226)의 어드레스에 해당하는 메모리 공간에 순차적으로 저장한다.
다음으로, DSP 코어(214)로/로부터 데이터를 읽는 동작은 자동-필(auto-fill)동작과 자동-플러쉬(auto-flush) 동작으로 이루어진다. DSP 코어(214)가 시퀀셜 버퍼(306)의 데이터를 읽어가서 시퀀셜 버퍼(306)가 비어있으면, 시퀀셜 버퍼(306)가 이를 인식하여 외장 메모리(220) 내 입력 데이터 영역(222) 데이터를 시퀀셜 버퍼(306)로 채우는 자동-필(auto-fill) 동작을 수행한다. 이에 대하여, DSP 코어(214) 데이터가 시퀀셜 버퍼(306)에 쓰여져 시퀀셜 버퍼(306)가 채워져 있으면, 시퀀셜 버퍼(306)가 이를 인식하여 시퀀셜 버퍼(306)의 데이터를 외장 메모리(220) 내 출력 데이터 영역에 저장하는 자동-플러쉬(auto-flush) 동작을 수행한다.
따라서, 본 발명의 컴퓨터 시스템에 의하면, DSP 코어로/로부터 전달되는 입력 또는 출력 데이터를 데이터 캐시를 사용하지 않고 시퀀셜 버퍼를 사용하여 시퀀셜하게 억세스함에 따라, 종래의 기술에 따른 데이터 캐시의 기능 저하 문제를 해결한다. 그리고, DSP 코어(214)의 데이터 타입에 따라 외장 메모리(220) 내에 서로 분리된 입력 데이터 영역, 임시 데이터 영역, 그리고 출력 데이터 영역을 사용하기 때문에, 종래의 한정된 데이터 어드레스 공간으로 인해 DSP 성능이 떨어뜨리는 문제를 해결한다.
이상에서, 본 발명은 실시예들을 들어 기술하였지만 이는 예시적인 것에 불과하며 본 발명의 기술적 사상 및 범위를 제한하거나 한정하는 것은 아니다. 본 발명에서는 대표적으로 두개의 시퀀셜 버퍼가 입력과 출력을 각각 담당하는 예에 대하여 기술되었다. 이와는 달리, 시퀀셜 버퍼 모듈은 하나의 컴퓨터 시스템에 하나 또는 그 이상의 갯수가 존재할 수 있다. 하나만 존재하는 경우는 하나의 시퀀셜 버퍼 모듈이 입력과 출력을 번갈아 담당하고, 세개 이상 존재하는 경우는 압력 또는 출력 데이터를 둘 이상의 시퀀셜 버퍼가 나누어 담당한다. 그러므로, 본 발명의 기술적 사상 및 범위를 벗어나지 않는 한도 내에서 다양한 변화 및 변경이 가능함은 물론이다.
상술한 본 발명의 컴퓨터 시스템에 의하면, DSP 코어로/로부터 전달되는 입력 또는 출력 데이터를 데이터 캐시를 사용하지 않고 시퀀셜 버퍼를 사용하여 시퀀셜하게 억세스하고, DSP 코어의 데이터 타입에 따라 외장 메모리 내에 서로 분리된 입력 데이터 영역, 임시 데이터 영역, 그리고 출력 데이터 영역을 사용하기 때문에, 데이터 캐시의 기능과 DSP 성능이 저하되지 않는다.

Claims (11)

  1. 일련의 명령들을 실행하는 CPU 코어;
    상기 CPU 코어에 의한 명령들에 따라 데이터들을 처리하는 DSP 코어;
    상기 DSP 코어로/로부터 상기 데이터 처리에 따른 임시 데이터를 저장하는 데이터 캐시;
    상기 DSP 코어로 수신되는 입력 데이터를 저장하는 제1 시퀀셜 버퍼 모듈;
    상기 DSP 코어로부터 출력되는 출력 데이터를 저장하는 제2 시퀀셜 버퍼 모듈; 및
    상기 임시 데이터, 상기 입력 데이터 및 상기 출력 데이터를 저장하는 외장 메모리를 구비하는 것을 특징으로 하는 컴퓨터 시스템.
  2. 제1항에 있어서, 상기 제1 및 제2 시퀀셜 버퍼 모듈은
    상기 CPU 코어에서 설정되는 외장 메모리의 어드레스를 저장하는 어드레스 버퍼;
    상기 외장 메모리 어드레스를 1씩 증가시키는 인크리먼트부;
    상기 외장 메모리 어드레스의 하위 비트에 따라 시퀀셜 버퍼를 어드레싱하는 먹스부; 및
    상기 먹스부 출력에 응답하여 상기 입력 데이터 또는 상기 출력 데이터를 저장하는 상기 시퀀셜 버퍼를 구비하는 것을 특징으로 하는 컴퓨터 시스템.
  3. 제2항에 있어서, 상기 시퀀셜 버퍼는
    데이터 레지스터인 것을 특징으로 하는 컴퓨터 시스템.
  4. 제2항에 있어서, 상기 시퀀셜 버퍼는
    그 내부에 소정의 유효 비트를 두어 상기 시퀀셜 버퍼가 비워있는 지 아니면 채워져있는 지 여부를 알리는 것을 특징으로 하는 컴퓨터 시스템.
  5. 제1항에 있어서, 상기 외장 메모리는
    상기 임시 데이터를 저장하는 임시 데이터 영역;
    상기 입력 데이터를 저장하는 입력 데이터 영역; 및
    상기 출력 데이터를 저장하는 출력 데이터 영역을 구비하고,
    상기 임시 데이터 영역, 상기 입력 데이터 영역, 그리고 상기 출력 데이터 영역은 서로 분리되어 있는 것을 특징으로 하는 컴퓨터 시스템.
  6. 제2항에 있어서, 상기 CPU 코어는
    상기 시퀀셜 버퍼가 비어 있으면 상기 외장 메모리에 저장된 입력 데이터를 순차적으로 읽어와 상기 시퀀셜 버퍼에 채우도록 지시하는 프리-필 명령을 실행하는 것을 특징으로 하는 컴퓨터 시스템.
  7. 제2항에 있어서, 상기 CPU 코어는
    상기 시퀀셜 버퍼가 채워져 있으면, 상기 시퀀셜 버퍼에 쓰여진 데이터를 외장 메모리에 순차적으로 저장하는 포스트-플러쉬 명령을 실행하는 것을 특징으로 하는 컴퓨터 시스템.
  8. 제2항에 있어서, 상기 시퀀셜 버퍼는
    상기 DSP 코어가 상기 시퀀셜 버퍼의 데이터를 읽어가서 상기 시퀀셜 버퍼가 비어있어 있음을 인식하여 상기 외장 메모리의 입력 데이터를 상기 시퀀셜 버퍼로 채우는 자동-필 동작을 수행하는 것을 특징으로 하는 컴퓨터 시스템.
  9. 제2항에 있어서, 상기 시퀀셜 버퍼는
    상기 DSP 코어의 데이터가 상기 시퀀셜 버퍼에 쓰여져 상기 시퀀셜 버퍼가 채워져 있음을 인식하여 상기 시퀀셜 버퍼의 데이터를 상기 외장 메모리에 저장하는 자동-플러쉬 동작을 수행하는 것을 특징으로 하는 컴퓨터 시스템.
  10. 제1항에 있어서, 상기 컴퓨터 시스템는
    상기 CPU 코어, 상기 DSP 코어, 상기 데이터 캐시 및 상기 제1 및 제2 시퀀셜 버퍼 모듈이 하나의 칩에 집적화되는 시스템-온-칩으로 구현되는 것을 특징으로 하는 컴퓨터 시스템.
  11. CPU 코어, DSP 코어, 데이터 캐시, 시퀀셜 버퍼, 그리고 외장 메모리를 포함하는 컴퓨터 시스템의 데이터 억세스 방법에 있어서,
    상기 DSP 코어의 데이터가 임시 데이터이면, 상기 데이터 캐시를 통하여 상기 외장 메모리의 임시 데이터 영역으로/으로부터 전달되는 단계;
    상기 시퀀셜 버퍼가 비어 있으면, 상기 외장 메모리에 저장된 입력 데이터를 순차적으로 읽어와 상기 시퀀셜 버퍼에 채우도록 지시하는 프리-필 명령을 실행하는 단계;
    상기 시퀀셜 버퍼가 채워져 있으면, 상기 시퀀셜 버퍼에 쓰여진 출력 데이터를 외장 메모리에 순차적으로 저장하는 포스트-플러쉬 명령을 실행하는 단계;
    상기 DSP 코어가 상기 시퀀셜 버퍼의 데이터를 읽어가서 상기 시퀀셜 버퍼가 비어있어 있으면, 상기 외장 메모리의 상기 입력 데이터를 상기 시퀀셜 버퍼로 채우는 자동-필 동작을 수행하는 단계; 및
    상기 DSP 코어의 데이터가 상기 시퀀셜 버퍼에 쓰여져 상기 시퀀셜 버퍼가 채워져 있으면, 상기 시퀀셜 버퍼의 데이터를 상기 외장 메모리에 저장하는 자동-플러쉬 동작을 수행하는 단계를 구비하는 것을 특징으로 하는 컴퓨터 시스템의 데이터 억세스 방법.
KR10-2003-0009157A 2003-02-13 2003-02-13 시퀀셜 버퍼를 내장하여 디에스피의 데이터 억세스 성능을향상시키는 컴퓨터 시스템 및 그 컴퓨터 시스템의 데이터억세스 방법 KR100463205B1 (ko)

Priority Applications (5)

Application Number Priority Date Filing Date Title
KR10-2003-0009157A KR100463205B1 (ko) 2003-02-13 2003-02-13 시퀀셜 버퍼를 내장하여 디에스피의 데이터 억세스 성능을향상시키는 컴퓨터 시스템 및 그 컴퓨터 시스템의 데이터억세스 방법
US10/762,170 US7159078B2 (en) 2003-02-13 2004-01-21 Computer system embedding sequential buffers therein for performing a digital signal processing data access operation and a method thereof
JP2004025294A JP4459641B2 (ja) 2003-02-13 2004-02-02 シーケンシャルバッファを内蔵してdspのデータアクセス性能を向上させるコンピュータシステム及びそのコンピュータシステムのアクセス方法
TW093102576A TWI272482B (en) 2003-02-13 2004-02-05 Computer system embedding sequential buffers therein for improving the performance of a digital signal processing data access operation and method thereof
CNB2004100282057A CN100336038C (zh) 2003-02-13 2004-02-13 嵌入顺序缓冲器的计算机系统及其方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2003-0009157A KR100463205B1 (ko) 2003-02-13 2003-02-13 시퀀셜 버퍼를 내장하여 디에스피의 데이터 억세스 성능을향상시키는 컴퓨터 시스템 및 그 컴퓨터 시스템의 데이터억세스 방법

Publications (2)

Publication Number Publication Date
KR20040073167A KR20040073167A (ko) 2004-08-19
KR100463205B1 true KR100463205B1 (ko) 2004-12-23

Family

ID=32844826

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2003-0009157A KR100463205B1 (ko) 2003-02-13 2003-02-13 시퀀셜 버퍼를 내장하여 디에스피의 데이터 억세스 성능을향상시키는 컴퓨터 시스템 및 그 컴퓨터 시스템의 데이터억세스 방법

Country Status (5)

Country Link
US (1) US7159078B2 (ko)
JP (1) JP4459641B2 (ko)
KR (1) KR100463205B1 (ko)
CN (1) CN100336038C (ko)
TW (1) TWI272482B (ko)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7849241B2 (en) * 2006-03-23 2010-12-07 International Business Machines Corporation Memory compression method and apparatus for heterogeneous processor architectures in an information handling system
JP5194703B2 (ja) * 2007-10-16 2013-05-08 ソニー株式会社 データ処理装置及び共有メモリのアクセス方法
US8631208B2 (en) * 2009-01-27 2014-01-14 Intel Corporation Providing address range coherency capability to a device
US8219758B2 (en) * 2009-07-10 2012-07-10 Apple Inc. Block-based non-transparent cache
US20120042182A1 (en) * 2010-08-10 2012-02-16 Seagate Technology Llc Forced idle cache
CN102662858B (zh) * 2012-03-08 2015-03-25 上海爱信诺航芯电子科技有限公司 一种扩展sram容量的虚拟存储方法
CN106681692A (zh) * 2015-11-09 2017-05-17 联发科技(新加坡)私人有限公司 控制装置、集成电路及任务栈的管理方法
KR20180038875A (ko) 2016-10-07 2018-04-17 삼성전자주식회사 데이터 입출력 유닛, 전자 장치 및 그 제어 방법들

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4942553A (en) * 1988-05-12 1990-07-17 Zilog, Inc. System for providing notification of impending FIFO overruns and underruns
US5649155A (en) * 1995-03-31 1997-07-15 International Business Machines Corporation Cache memory accessed by continuation requests
EP0741356A1 (en) * 1995-05-05 1996-11-06 Rockwell International Corporation Cache architecture and method of operation
KR100280285B1 (ko) * 1996-08-19 2001-02-01 윤종용 멀티미디어 신호에 적합한 멀티미디어 프로세서
JPH1165989A (ja) * 1997-08-22 1999-03-09 Sony Computer Entertainment:Kk 情報処理装置
CN100353349C (zh) * 1999-11-05 2007-12-05 模拟装置公司 通讯处理器的总线结构和共享总线判优方法
WO2003003197A2 (en) * 2001-06-28 2003-01-09 Oak Technology, Inc. System-on-a-chip controller
US6748497B1 (en) * 2001-11-20 2004-06-08 Cirrus Logic, Inc. Systems and methods for buffering memory transactions

Also Published As

Publication number Publication date
CN100336038C (zh) 2007-09-05
US7159078B2 (en) 2007-01-02
JP2004246889A (ja) 2004-09-02
TW200415463A (en) 2004-08-16
US20040162942A1 (en) 2004-08-19
JP4459641B2 (ja) 2010-04-28
TWI272482B (en) 2007-02-01
CN1523507A (zh) 2004-08-25
KR20040073167A (ko) 2004-08-19

Similar Documents

Publication Publication Date Title
US10365844B2 (en) Logical block address to physical block address (L2P) table compression
USRE43483E1 (en) System and method for managing compression and decompression of system memory in a computer system
US6549995B1 (en) Compressor system memory organization and method for low latency access to uncompressed memory regions
US7143238B2 (en) Mechanism to compress data in a cache
US20050144388A1 (en) Processor and memory controller capable of use in computing system that employs compressed cache lines' worth of information
US9798543B2 (en) Fast mapping table register file allocation algorithm for SIMT processors
US6341325B2 (en) Method and apparatus for addressing main memory contents including a directory structure in a computer system
US20160224241A1 (en) PROVIDING MEMORY BANDWIDTH COMPRESSION USING BACK-TO-BACK READ OPERATIONS BY COMPRESSED MEMORY CONTROLLERS (CMCs) IN A CENTRAL PROCESSING UNIT (CPU)-BASED SYSTEM
JP2001216194A (ja) 演算処理装置
US7162583B2 (en) Mechanism to store reordered data with compression
CN108139989B (zh) 配备有存储器中的处理和窄访问端口的计算机设备
US7444442B2 (en) Data packing in a 32-bit DMA architecture
US9189394B2 (en) Memory-link compression for graphic processor unit
KR100463205B1 (ko) 시퀀셜 버퍼를 내장하여 디에스피의 데이터 억세스 성능을향상시키는 컴퓨터 시스템 및 그 컴퓨터 시스템의 데이터억세스 방법
US5761718A (en) Conditional data pre-fetching in a device controller
US9471584B2 (en) Demand paging method for mobile terminal, controller and mobile terminal
US6427191B1 (en) High performance fully dual-ported, pipelined cache design
US6349370B1 (en) Multiple bus shared memory parallel processor and processing method
US6801988B2 (en) Data buffer for block unit data transfer to SDRAM
US7502920B2 (en) Hierarchical storage architecture for reconfigurable logic configurations
US20040250006A1 (en) Method of accessing data of a computer system
US8099533B2 (en) Controller and a method for controlling the communication between a processor and external peripheral device
KR100334298B1 (ko) 기억 소자
JP2000285019A (ja) キャッシュ制御回路
US20090100220A1 (en) Memory system, control method thereof and computer system

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

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20131129

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20191129

Year of fee payment: 16