KR100703357B1 - 보조제어부를 구비하는 휴대용 단말기의 캐시메모리구현장치 및 방법 - Google Patents

보조제어부를 구비하는 휴대용 단말기의 캐시메모리구현장치 및 방법 Download PDF

Info

Publication number
KR100703357B1
KR100703357B1 KR1020030056666A KR20030056666A KR100703357B1 KR 100703357 B1 KR100703357 B1 KR 100703357B1 KR 1020030056666 A KR1020030056666 A KR 1020030056666A KR 20030056666 A KR20030056666 A KR 20030056666A KR 100703357 B1 KR100703357 B1 KR 100703357B1
Authority
KR
South Korea
Prior art keywords
control unit
cache
data
memory
controller
Prior art date
Application number
KR1020030056666A
Other languages
English (en)
Other versions
KR20050018255A (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 KR1020030056666A priority Critical patent/KR100703357B1/ko
Priority to US10/917,491 priority patent/US7484047B2/en
Priority to CNB200410057741XA priority patent/CN1318981C/zh
Publication of KR20050018255A publication Critical patent/KR20050018255A/ko
Application granted granted Critical
Publication of KR100703357B1 publication Critical patent/KR100703357B1/ko

Links

Images

Classifications

    • 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/0806Multiuser, multiprocessor or multiprocessing cache systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04BTRANSMISSION
    • H04B1/00Details of transmission systems, not covered by a single one of groups H04B3/00 - H04B13/00; Details of transmission systems not characterised by the medium used for transmission
    • H04B1/38Transceivers, i.e. devices in which transmitter and receiver form a structural unit and in which at least one part is used for functions of transmitting and receiving
    • H04B1/40Circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

주제어부와, 주제어부의 제어하에 특정 기능을 수행하는 보조제어부를 구비하는 단말 장치가, 주제어부의 동작 프로그램들을 저장하는 제1영역 및 보조제어부의 동작 프로그램들을 저장하는 제2영역을 구비하는 제1플래시메모리와, 주제어부의 콘텐츠 데이터 등과 같은 비휘발을 요구하는 데이터들을 저장하는 제1영역 및 보조제어부의 콘텐츠 데이터 등과 같은 비휘발을 요구하는 데이터들을 저장하는 제2영역을 구비하는 제2플래시메모리와, 주제어부의 동작 중에 발생되는 데이터를 일시 저장하고 램 영역에서 실행되어야 할 코드의 일부가 로딩되는 제1영역 및 보조제어부이 동작 중에 발생되는 데이터를 일시 저장하고 램 영역에서 실행되어야 할 코드의 일부가 로딩되는 제2영역을 구비하는 램과, 메모리들과 주제어부 및 보조제어부에 사이에 연결되며, 데이터 및 코드를 모두 캐싱하는 캐시메모리와, 캐시메모리의 캐시히트 및 미스를 판단하며, 캐시히트 발생시 캐싱되어 있는 데이터 또는 코드를 해당하는 주제어부가 억세스할 수 있도록 제어하며, 캐시미스 발생시 메모리들을 억세스하여 데이터 또는 코드를 캐시메모리에 저장하는 동시에 주제어부에서 억세스할 수 있도록 제어하는 캐시제어부로 구성된다.
캐시, 캐시메모리, 보조제어부

Description

보조제어부를 구비하는 휴대용 단말기의 캐시메모리 구현장치 및 방법{DEVICE AND METHOD FOR COMPOSING CACHE MEMORY OF WIRELESS TERMINAL HAVING COPROCESSOR}
도 1은 종래의 보조제어부를 구비하는 휴대단말기의 구성을 도시하는 도면
도 2는 보조제어부를 구비하는 본 발명의 제1실시예에 따른 휴대단말기의 구성을 도시하는 도면
도 3은 보조제어부를 구비하는 본 발명의 제2실시예에 따른 휴대단말기의 구성을 도시하는 도면
본 발명의 보조제어부를 구비하는 휴대용단말기의 캐시메모리 장치 및 방법에 관한 것으로, 특히 보조제어부에 캐시기능을 구현하여 부가적인 메모리의 수를 줄일 수 있는 장치 및 방법에 관한 것이다.
일반적으로 주제어부(main processor)와 보조제어부(coprocessor)를 구비하 는 시스템은 상기 주제어부가 시스템의 전반적인 동작을 제어하고, 보조제어부는 상기 주제어부의 제어하에 특정 기능을 제어하게 된다. 상기와 같은 구조는 현재 복합 기능을 수행하는 휴대용 단말기들에도 구현되고 있는 추세이다. 현재 영상신호를 처리하는 휴대용 단말기를 예로들면, 휴대단말기의 주제어부는 통신 및 휴대단말기의 전체적인 동작을 제어하는 기능을 수행하고, 보조제어부는 상기 제어부의 제어하에 특정 기능을 수행하기 위한 신호들을 처리하는 기능을 수행한다. 상기와 같은 보조제어부를 구비하는 휴대 단말기에는 카메라를 구비하는 휴대단말기, PDA, VOD 기능을 서비스하는 휴대단말기 등이 될 수 있다.
상기와 같이 주제어부 및 보조제어부를 구비하는 시스템의 구조는 도 1과 같은 구조를 가질 수 있다. 이하의 설명에서는 상기 시스템이 휴대 단말기이며, 상기 보조제어부가 영상신호를 전담으로 처리하는 프로세서(multimedia co-processor)인 경우를 가정하여 설명하기로 한다.
상기 도 1을 참조하면, 주제어부100은 휴대단말기의 통신 및 전반적인 동작을 제어한다. 제1플래시메모리110은 상기 주제어부100의 부트 및 로더 프로그램(boot & loader program) 및 메인 동작 프로그램들, 그리고 플래시화일시스템을 저장하는 메모리이다. 제2플래시메모리120은 콘텐츠 데이터(contents data), 폰트 데이터(font data), 비트맵 데이터(bit map data), 폰북 데이터 등과 같이 영구적인 저장이 요구되는 데이터들을 저장하는 메모리(non-volatile memory: NVM)이다. 램130은 주제어부100의 워크 메모리(work memory)로 사용될 수 있다. 기타주변장치140은 상기 주제어부100의 제어하에 동작되는 장치들을 의미한다. 여기 서 상기 기타주변장치140은 키패드, 표시부, 무선통신부, 통화부 등이 될 수 있다.
보조제어부200은 상기 주제어부100의 제어하에 특정 기능(여기서는 멀티미디어 데이터를 처리하는 경우로 가정하고 있음)을 전담하여 처리하는 기능을 한다. 제1플래시메모리210은 상기 보조제어부200의 부트 및 로더 프로그램 및 메인 동작 프로그램들, 그리고 플래시화일시스템을 저장하는 메모리이다. 제2플래시메모리220은 보조제어부200의 기능에 따른 콘텐츠 데이터(contents data) 등과 같은 비휘발을 요구하는 데이터들을 저장하는 메모리이다. 램230은 보조제어부200의 워크 메모리(work memory)로 사용될 수 있다. 표시부240은 상기 보조제어부200이 영상처리를 전담으로 수행하는 프로세서인 경우, 상기 보조제어부200의 제어하에 처리되는 영상신호를 표시하는 기능을 수행한다. 이때 상기 표시부240이 상기 휴대단말기에 하나만 존재하는 경우, 상기 표시부240은 상기 주제어부100 및 보조제어부200에 의해 억세스되는 주변장치가 될 수 있다. 기타주변장치250은 상기 보조제어부200의 제어하에 동작되는 장치들을 의미한다. 여기서 상기 휴대단말기가 캠코더인 경우 상기 기타주변장치240은 MMC card I/F 모듈, 카메라 등이 될 수 있다. 그리고 상기 제2플래시메모리220에 저장되는 콘텐츠데이타는 영상처리된 데이터들이 될 수 있다. 그리고 PDA 단말기인 경우에는 통신 기능을 제외한 모든 어플리케이션(application)들이 상기 기타주변장치240이 될 수 있다.
상기한 바와 같이 보조제어부(co processor)200은 시스템에서 GUI(Graphic User Interface), 멀티미디어코덱(multimedia codec) 등의 속도를 요하는 기능들 혹은 응용 프로그램을 동작시킬 수 있는 프로세서를 의미한다. 그리고 주제어부(main processor)100은 시스템의 전반적인 동작을 제어하는 프로세서를 의미한다. 예를들면 휴대단말기의 경우 MSM과 같은 모뎀칩이 될 수 있다. 상기 제1플래시메모리110 및 210에 저장되는 부트(boot) 모듈은 각각 대응되는 제어부의 동작을 초기화하며 실제로 메인 소프트웨어 루틴으로 넘어 갈 수 있도록 구성된 소프트웨어 모듈을 나타낸다. 그리고 상기 로더(loader) 모듈은 부팅이 되어 일부 필요한 모듈만 초기화된 후 수행되면서 나머지 메인 소프트웨어 코드 부분들을 제어부가 동작할 수 있는 메모리 영역으로 옮겨주는 작업을하는 소프트웨어 모듈을 나타낸다. 또한 상기 부트로더(bootloader) 모듈은 상기 부트 모듈과 로더 모듈이 합쳐져 있는 소프트웨어 모듈을 나타낸다. 그리고 상기 플래시화일시스템(flash file system)은 플래시메모리에 데이터를 오류 없이 쓰거나 읽는 것이 가능하도록 하는 소프트웨어 모듈을 나타낸다.
상기 도 1에서 상기 제1플래시메모리110 및 210은 NOR형 플래시메모리가 될 수 있으며, 상기 제2플래시메모리120 및 220은 NAND형 플래시메모리가 될 수 있다. 이때 상기 NOR 플래시 메모리는 안정된 구조를 가지는 장점이 있는 반면에 가격이 비싸며, 부트 및 로더 프로그램 및 플래시화일시스템들을 저장한다. NAND 플래시메모리는 상기 NOR 플래시 메모리에 비해 상대적이 가격이 싸고 대용량이 될 수 있는 장점이 있는 반면에 메모리 내에 배드섹터(bad sector)가 발생될 확률이 상대적으로 높으며, 주로 해당 장치의 콘텐츠 데이터들을 저장한다. 따라서 상기 NAND 플래시메모리에 상기 부트 및 로더 프로그램 및 플래시화일시스템들을 저장하는 경우, 상기 프로그램을 저장하는 영역에서 배드섹터가 발생되면 시스템의 동작을 수행할 수 없는 문제점이 야기된다. 따라서 일반적으로 상기 NOR형 플래시메모리는 프로그램을 저장하는 메모리로 사용하고, 상기 NAND형 플래시메모리는 지워지지 않아야 하는 데이터들(예를들면 상기한 바와 같은 콘텐츠 데이터, 폰트 데이터, 비트맵 데이터, 폰북 데이터, 영상 데이터 등)을 저장하는 메모리로 사용한다.
상기한 바와 같이 주제어부100 및 보조제어부200은 각각 NOR 및 NAND 플래시메모리들과 램들로 이루어지는 메모리를 구비하고 있다. 따라서 상기 주제어부 및 보조제어부가 각각 상기와 같은 메모리들을 구비하여야 하므로, 하드웨어의 실장 공간이 커지고 또한 제품의 가격이 상승되는 문제점이 있었다. 즉, 상기 도 1에 도시된 바와 같이 주제어부100 및 보조제어부200은 각각 제1 및 제2플래시메모리들 및 램들을 독립적으로 구비하고 있는 구조를 가지고 있다. 따라서 상기와 같이 주제어부100 및 보조제어부200이 각각 독립적으로 많은 메모리들을 구비하여 하므로, 단말기의 소형화, 저전력화 및 저가격화에 많은 문제점을 가지게 된다.
따라서 상기 주제어부100 및 보조제어부200이 상기 제1플래시메모리, 제2플래시메모리 및 램들을 공유하고, 또한 상기 주제어부100 및 보조제어부200이 필요시 각각 독립적으로 상기 메모리들을 억세스할 수 있으면 상기 메모리의 수를 반으로 줄일 수 있게 된다.
따라서 본 발명의 목적은 주제어부 및 보조제어부를 구비하는 휴대단말기에서 각 제어부들이 메모리들을 공유할 수 있는 장치 및 방법을 제공함에 있다.
본 발명의 다른 목적은 휴대단말기의 주제어부 및 보조제어부가 메모리들을 공유하고, 캐시메모리를 이용하여 주제어부 및 보조제어부의 메모리들의 억세스를 제어할 수 있는 장치 및 방법을 제공함에 있다.
본 발명의 또 다른 목적은 주제어부 및 보조제어부를 구비하는 휴대단말기에서 캐시제어부가 캐시메모리를 제어하여 외부 메모리들의 억세스를 제어하므로써 주제어부 및 보조제어부가 외부메모리들을 공유할 수 있는 장치 및 방법을 제공함에 있다.
본 발명의 또 다른 목적은 주제어부 및 보조제어부를 구비하는 휴대단말기에서 캐시제어부가 주제어부와 연결되는 제1캐시메모리 및 보조제어부와 연결되는 제2캐시메모리를 각각 제어하여 주제어부 및 보조제어부가 외부 메모리들을 공유할 수 있는 장치 및 방법을 제공함에 있다.
상기 목적을 달성하기 위한 본 발명의 실시예에 따른 단말 장치는, 주제어부와, 상기 주제어부의 제어하에 특정 기능을 수행하는 보조제어부와, 상기 주제어부의 동작 프로그램들을 저장하는 제1영역 및 상기 보조제어부의 동작 프로그램들을 저장하는 제2영역을 구비하는 제1플래시메모리와, 상기 주제어부의 콘텐츠 데이터 등과 같은 비휘발을 요구하는 데이터들을 저장하는 제1영역 및 상기 보조제어부의 콘텐츠 데이터 등과 같은 비휘발을 요구하는 데이터들을 저장하는 제2영역을 구비하는 제2플래시메모리와, 상기 주제어부의 동작 중에 발생되는 데이터를 일시 저장하고 램 영역에서 실행되어야 할 코드의 일부가 로딩되는 제1영역 및 상기 보조제어부이 동작 중에 발생되는 데이터를 일시 저장하고 램 영역에서 실행되어야 할 코 드의 일부가 로딩되는 제2영역을 구비하는 램과, 상기 메모리들과 상기 주제어부 및 보조제어부에 사이에 연결되며, 데이터 및 코드를 모두 캐싱하는 캐시메모리와, 상기 캐시메모리의 캐시히트 및 미스를 판단하며, 상기 캐시히트 발생시 상기 캐싱되어 있는 데이터 또는 코드를 해당하는 상기 주제어부가 억세스할 수 있도록 제어하며, 상기 캐시미스 발생시 상기 메모리들을 억세스하여 데이터 또는 코드를 상기 캐시메모리에 저장하는 동시에 상기 주제어부에서 억세스할 수 있도록 제어하는 캐시제어부로 구성된 것을 특징으로 한다.
이하 본 발명의 바람직한 실시예들의 상세한 설명이 첨부된 도면들을 참조하여 설명될 것이다. 이하의 설명에서는 주제어부 및 보조제어부를 구비하는 시스템이 휴대단말기(휴대전화기)인 경우로 가정하여 설명될 것이며, 상기 보조제어부는 멀티미디어 데이터를 처리하는 제어부로 가정하여 설명될 것이다. 그러나 상기 휴대단말기 이외의 다른 시스템에도 본 발명의 실시예가 적용될 수 있으며, 또한 상기 보조제어부도 멀티미디어 정보 이외의 다른 기능을 처리하기 위한 제어부로 사용될 수 있다.
도 2는 본 발명의 제1실시예에 따른 보조제어부를 구비하는 휴대 단말기의 구성을 도시하는 도면이다.
상기 도 2를 참조하면, 주제어부300은 휴대단말기의 통신 및 전반적인 동작을 제어한다. 보조제어부310은 상기 주제어부300의 제어하에 특정 기능을 전담하여 처리하는 기능을 수행한다.
캐시메모리(cache memory)330은 메모리들의 데이터 및 코드를 모두 캐시한다. 캐시제어부(cache controller)320은 상기 캐시메모리330의 캐시 히트 및 미스(cache hit/miss) 여부를 확인한다. 상기 캐시제어부320은 상기 캐시 히트 발생시 상기 캐시메모리330에 캐시되어 있는 데이터 또는 코드를 전달 또는 수신하도록 제어하며, 상기 캐시 미스가 발생될 때 데이터 또는 코드를 상기 메모리들의 적절한 위치에서 캐시메모리330에 저장하는 동시에 상기 주제어부300에 이를 통보한다. 또한 상기 캐시제어부320은 상기 각 메모리들로부터 또는 각 메모리들에 캐시 억세스시 상기 보조제어부310이 상기 메모리로의 버스를 동시에 억세스하므로써 발생할 수 있는 버스 충돌을 방지하는 버스 중재 (bus arbitration)기능을 수행한다.
상기 메모리들은 제1플래시메모리410, 제2플래시메모리420 및 램430들이 될 수 있다.
상기 제1플래시메모리410은 상기 주제어부300 및 보조제어부310이 각각 동작할 수 있는 코드 혹은 폰트 데이터를 저장하는 메모리이다. 따라서 상기 제1플래시메모리410은 상기 주제어부300의 부트 및 로더 프로그램 및 메인 동작 프로그램들을 저장하는 제1영역 및 상기 보조제어부310의 부트 및 로더 프로그램 및 메인 동작 프로그램들을 저장하는 제2영역을 구비하는 메모리가 될 수 있다. 상기 제1플래시메모리410은 하나의 메모리로 구성할 수 있으며, 상기와 같이 각각 메모리 영역을 구분하여 주제어부300 및 보조제어부310의 프로그램들을 저장하는 메모리이다.
상기 제2플래시메모리420은 상기 주제어부300 및 보조제어부310이 각각 동작 중에 저장을 필요로 하는 컨텐츠 혹은 데이터를 저장하는 메모리이다. 상기 주제어부300의 콘텐츠 데이터(contents data), 폰트 데이터(font data), 비트맵 데이터(bit map data), 폰북 데이터 등과 같은 비휘발을 요구하는 데이터들을 저장하는 제1영역 및 보조제어부310의 기능에 따른 콘텐츠 데이터(contents data) 등과 같은 비휘발을 요구하는 데이터들을 저장하는 제2영역을 구비하는 메모리이다. 상기 제2플래시메모리420도 하나의 메모리로 구성할 수 있으며, 상기와 같이 각각 메모리 영역을 구분하여 주제어부300 및 보조제어부310의 비휘발성 데이터들을 저장하는 메모리이다.
상기 램430은 주제어부300 및 보조제어부310의 워크 메모리(work memory)로 사용될 수 있다. 상기 램430은 상기 주제어부300의 동작중에 임시로 저장할 데이터 저장소로 이용하여 램 영역에서 실행되어야 할 코드의 일부가 로딩되는 제1영역 및 보조제어부310이 동작중에 임시로 저장할 데이터 저장소로 이용하거나 램 영역에서 실행되어야 할 코드의 일부가 로딩되는 제2영역을 구비하는 메모리이다.
기타주변장치390은 상기 주제어부300의 제어하에 동작되는 장치들을 의미한다. 상기 기타주변장치390은 키패드, 표시부, 무선통신부, 통화부 등이 될 수 있다.
표시부440은 상기 보조제어부310이 영상처리를 전담으로 수행하는 프로세서인 경우, 상기 보조제어부200의 제어하에 처리되는 영상신호를 표시하는 기능을 수행한다. 이때 상기 표시부440이 상기 휴대단말기에 하나만 존재하는 경우, 상기 표시부440은 상기 주제어부300 및 보조제어부310에 의해 억세스되는 주변장치가 될 수 있다. 기타주변장치450은 상기 보조제어부200의 제어하에 동작되는 장치들을 의미한다. 여기서 상기 휴대단말기가 캠코더인 경우 상기 기타주변장치450은 MMC card I/F 모듈, 카메라 등이 될 수 있다. 그리고 PDA 단말기인 경우에는 통신 기능을 제외한 모든 어플리케이션(application)들이 상기 기타주변장치450이 될 수 있다.
상기 도 2를 참조하면, 상기 보조제어부310, 캐시제어부320 및 캐시메모리330은 모두 주제어부300의 메모리 맵 상에 위치하도록 구성하며, 이는 상기 보조제어부310도 상기 주제어부300에서 보면 메모리410-430과 같이 보여지게 되도록 구성하는 것이다. 즉, 상기 주제어부300은 상기 보조제어부310을 메모리 맵 상에 놓여 있는 레지스터모듈로 본다. 상기 주제어부300은 상기 보조제어부310의 제어를 위한 각종 커맨드와 이에 따른 각종 데이터들을 이 레지스터 모듈을 통해 전달하고 응답을 수신한다. 상기 각각의 모듈은 어드레스와 제어신호에 의해 선택이 되며, 선택이 된 상황에서 데이터 버스에 실리는 유효한 데이터를 전송하거나 입력한다.
상기 캐시메모리330은 데이터와 코드를 모두 캐시(caching)할 수 있도록 구성한다. 상기 캐시제어부320은 상기 캐시메모리330의 히트/미스(hit/miss)여부를 판단하며, 상기 캐시 히트(cache hit)가 발생되면 상기 캐시메모리330에 저장된 데이터 혹은 코드를 전달 및 수신되도록 제어하고, 상기 캐시 미스(cache miss)가 발생되면 데이터 혹은 코드를 외부의 메모리410, 420 또는 430의 적절한 위치에서 리드하여 상기 캐시메모리330에 저장하는 동시에 상기 주제어부300이 읽거나 쓸 수 있도록 제어한다. 또한 상기 캐시제어부320은 상기 각 메모리410, 420 및 430로부터 또는 상기 각 메모리410, 420 및 430로의 캐시 억세스시, 상기 보조제어부310이 상기 각 메모리410, 420 및 430으로의 버스를 동시에 억세스함으로써 발생할 수 있는 버스 충돌을 방지하기 위하여 버스를 중재하는 역할을 한다.
상기와 같은 구성을 갖는 본 발명의 제1실시예의 동작을 살펴보면, 주제어부300은 각 메모리410-430의 제1영역에 읽기 및 쓰기와 같은 억세스를 할 수 있다. 이런 경우, 상기 주제어부300은 메모리 맵에서 램430, 제1플래시메모리410 및 제2플래시메모리420의 제1영역을 억세스하고자 하는 경우, 상기 주제어부300과 상기 보조제어부310 사이의 시스템 버스 상태를 관찰하는 캐시제어부320이 캐시히트 또는 캐시미스가 발생하는지 확인한다. 이때 상기 캐시 히트가 발생하면, 상기 캐시제어부320은 상기 주제어부300이 캐시메모리330에 저장된 정보를 읽거나 또는 상기 캐시메모리330에 정보를 쓰도록 한다. 또한 상기 캐시 미스가 발생하면, 먼저 상기 보조제어부310과 상기 캐시메모리330 사이의 버스에서 충돌이 발생하지 않게 하기 위하여 상기 캐시제어부320은 상기 보조제어부310의 메모리 억세스 동작을 중지하도록 한다. 상기와 같이 보조제어부310의 버스 제어권이 중지된 상황에서 상기 캐시제어부320은 상기 외부 메모리410-430으로 억세스를 할 수 있게 된다. 즉, 상기 캐시제어부320은 상기 외부 메모리 410-430의의 데이터 혹은 코드를 읽어 상기 캐시메모리330에 저장하고, 동시에 상기 주제어부300이 상기 캐시메모리330의 데이터 혹은 코드를 읽어갈수 있게 된다. 이때 상기 주제어부300이 상기 캐시메모리330을 억세스하지 않으면, 상기 캐시제어부320은 틈틈이 상기 보조제어부310이 상기 캐시메모리330을 억세스할 수 있도록 허용한다.
도 3은 발명의 제2실시예에 따른 보조제어부를 구비하는 휴대 단말기의 구성을 도시하는 도면이다.
상기 도 3을 참조하면, 주제어부300은 휴대단말기의 통신 및 전반적인 동작을 제어한다. 보제어부310은 상기 주제어부300의 제어하에 특정 기능을 전담하여 처리하는 기능을 수행한다. 그리고 상기 도 3에서의 제1플래시메모리410, 제2플래시메모리420 및 램430은 상기 도 2의 메모리들과 동일한 구성을 가지며, 동작도 동일하다.
제1캐시메모리(cache memory)330은 상기 메모리410-430의 제1영역에 저장되는 데이터 및 코드를 모두 캐시한다. 제2캐시메모리340은 상기 메모리410-430의 제2영역에 저장되는 데이터 및 코드를 모두 캐시한다.
캐시제어부(cache controller)는 상기 제1캐시메모리330 및 제2캐시메모리340의 히트 및 미스 여부를 확인한다. 하며, 상기 캐시히트 발생시 상기 제1캐시메모리330 또는 제2캐시메모리340에 캐시되어 있는 데이터 또는 코드를 각각 상기 주제어부300 또는 보조제어부에 전달 또는 수신하도록 제어하며, 캐시 미스가 발생될 때 데이터 또는 코드를 상기 메모리410-430의 적절한 영역에서 제1캐시메모리330 또는 제2캐시메모리340에 저장하는 동시에 상기 주제어부300 또는 상기 보조제어부310에 이를 통보한다. 또한 상기 캐시제어부320은 상기 각 메모리410-430들로부터 또는 각 메모리410-430들에 캐시 억세스시 상기 주제어부300 및 보조제어부310이 상기 메모리410-430로의 버스를 동시에 억세스하므로써 발생할 수 있는 버스 충돌을 방지하는 버스 중재 (bus arbitration)기능을 수행한다.
상기 도 3을 참조하면, 상기 도 2의 시스템과 상기 도 3은 제2캐시메모리340을 더 구비하며, 따라서 상기 캐시제어부320의 캐시 제어 방법이 변경되었다. 상기 제2캐시메모리340의 기능은 상기 보조제어부320이 상기 메모리410-430들의 제2영역을 억세스 할 때에 상기 메모리410-430의 접근 빈도를 줄인다. 또한 상기 제2캐시메모리340은 상기 캐시제어부320에 의해 상기 보조제어부310이 상기 메모리410-430으로 억세스를 시도할때 발생할 수 있는 버스 충돌을 방지하는 역할도 할 수 있게 된다. 즉, 상기 도 2와 같은 구조를 가지는 시스템에서는 상기 캐시제어부320이 보조제어부310을 제어하여 상기 메모리410-430들을 억세스를 할 수 없도록 중지시켰으나, 상기 도 3과 같은 구조를 가지는 시스템은 상기 캐시제어부320이 상기 제2캐시메모리340을 제어함으로써 동일한 결과를 얻을 수 있게 된다.
상기 도 3과 같은 구조를 제2실시예의 동작을 살펴보면, 상기 주제어부300은 상기 메모리410-430들의 제1영역에 데이터 및 코드의 읽기, 쓰기와 같은 억세스를 하는 경우, 즉, 상기 주제어부300의 메모리 맵 상에 두고있는 상기 메모리410-430들의 제1영역을 억세스 하려 할 때, 상기 주제어부300과 보조제어부310 시스템 버스 상태를 관찰하던 상기 캐시제어부320이 상기 제1캐시메모리330의 캐시 히트 또는 미스가 발생하는지 확인한다. 이때 상기 제1캐시메모리330에 캐시 히트가 발생하게 되면, 상기 캐시제어부320은 상기 제1캐시메모리330의 데이터 및 코드를 상기 주제어부300이 읽거나 쓰도록 하며, 상기 제1캐시메모리330에 캐시 미스가 발생되면, 상기 보조제어부310와 상기 메모리410-430 사이의 버스에서 충돌이 발생하지 않게 하기 위한 조치를 하고 상기 보조제어부310이 상기 메모리410-430을 억세스할 수 있도록 제어한다.
상기 버스 충돌 방지를 위한 조치는 상기 보조제어부310이 상기 제2캐시메모리340을 억세스할 때에 상기 제2캐시메모리340의 캐시 미스가 발생하는지 여부에 따라 달라지게 되는데, 상기 제2캐시메모리의 캐시 히트가 발생할 경우에는 상기 메모리410-430으로 접근하지 않기 때문에 버스 충돌이 발생하지 않는다. 따라서 상기 캐시제어부320은 상기 보조제어부310과 상기 제2캐시메모리340 사이의 버스를 관찰하다가 상기 제2캐시메모리340의 캐시히트가 발생할 경우라면 상기 보조제어부310이 상기 제2캐시메모리340에 접근하도록 한다. 반면에 상기 제2캐시메모리340의 캐시 미스가 발생할 경우라면, 버스 충돌이 발생하지 않도록 상기 보조제어부310과 상기 제2캐시메모리340이 상기 메모리410-430들로의 억세스가 발생하지 않도록 제어하고, 상기 주제어부300 또는 상기 제1캐시메모리330이 상기 메모리410-430들을 억세스 하도록 제어한다. 마찬가지로 상기 보조제어부310과 제2캐시메모리340의 억세스 요구는 상기 주제어부300 또는 제1캐시메모리330이 억세스를 마치거나 중단한 틈틈이 억세스를 허용하도록 한다.
상술한 바와 같이 보조제어부를 구비하는 휴대 단말기에서, 주제어부 및 보조제어부가 각각 램, NOR형 플래시메모리 및 NAND형 플래시메모리를 각각 구비하지 않고 이들 메모리들을 공유할 수 있으며, 이로인해 단말기의 소형화, 저전력화 및 저가격화를 이룰 수 있는 이점이 있다.

Claims (6)

  1. 주제어부와, 상기 주제어부의 제어하에 특정 기능을 수행하는 보조제어부를 구비하는 단말 장치에 있어서,
    상기 주제어부의 동작 프로그램들을 저장하는 제1영역 및 상기 보조제어부의 동작 프로그램들을 저장하는 제2영역을 구비하는 제1플래시메모리와,
    상기 주제어부의 콘텐츠 데이터 등과 같은 비휘발을 요구하는 데이터들을 저장하는 제1영역 및 상기 보조제어부의 콘텐츠 데이터 등과 같은 비휘발을 요구하는 데이터들을 저장하는 제2영역을 구비하는 제2플래시메모리와,
    상기 주제어부의 동작 중에 발생되는 데이터를 일시 저장하고 램 영역에서 실행되어야 할 코드의 일부가 로딩되는 제1영역 및 상기 보조제어부이 동작 중에 발생되는 데이터를 일시 저장하고 램 영역에서 실행되어야 할 코드의 일부가 로딩되는 제2영역을 구비하는 램과,
    상기 메모리들과 상기 주제어부 및 보조제어부에 사이에 연결되며, 데이터 및 코드를 모두 캐싱하는 캐시메모리와,
    상기 캐시메모리의 캐시히트 및 미스를 판단하며, 상기 캐시히트 발생시 상기 캐싱되어 있는 데이터 또는 코드를 해당하는 상기 주제어부가 억세스할 수 있도록 제어하며, 상기 캐시미스 발생시 상기 메모리들을 억세스하여 데이터 또는 코드를 상기 캐시메모리에 저장하는 동시에 상기 주제어부에서 억세스할 수 있도록 제어하는 캐시제어부로 구성된 것을 특징으로 하는 상기 장치.
  2. 제1항에 있어서, 상기 캐시제어부가 캐시미스 발생시 상기 보조제어부가 상기 메모리들의 억세스 동작을 중단시켜 버스를 중재하는 것을 특징으로 하는 상기 장치.
  3. 제2항에 있어서, 상기 캐시제어부가 상기 주제어부에서 메모리들을 억세스하지 않을 시 상기 보조제어부가 상기 메모리들을 억세스할 수 있도록 제어하는 것을 특징으로 하는 상기 장치.
  4. 주제어부와, 상기 주제어부의 제어하에 특정 기능을 수행하는 보조제어부를 구비하는 단말 장치에 있어서,
    상기 주제어부의 동작 프로그램들을 저장하는 제1영역 및 상기 보조제어부의 동작 프로그램들을 저장하는 제2영역을 구비하는 제1플래시메모리와,
    상기 주제어부의 콘텐츠 데이터 등과 같은 비휘발을 요구하는 데이터들을 저장하는 제1영역 및 상기 보조제어부의 콘텐츠 데이터 등과 같은 비휘발을 요구하는 데이터들을 저장하는 제2영역을 구비하는 제2플래시메모리와,
    상기 주제어부의 동작 중에 발생되는 데이터를 일시 저장하고 램 영역에서 실행되어야 할 코드의 일부가 로딩되는 제1영역 및 상기 보조제어부이 동작 중에 발생되는 데이터를 일시 저장하고 램 영역에서 실행되어야 할 코드의 일부가 로딩되는 제2영역을 구비하는 램과,
    상기 메모리들의 제1영역과 상기 주제어부 사이에 연결되며, 데이터 및 코드를 모두 캐싱하는 제1캐시메모리와,
    상기 메모리들의 제2영역과 상기 보조제어부 사이에 연결되며, 데이터 및 코드를 모두 캐싱하는 제2캐시메모리와,
    상기 제1 및 제2캐시메모리의 캐시히트 및 미스를 판단하며, 상기 제1캐시메모리의 히트 발생시 상기 캐싱되어 있는 데이터 또는 코드를 해당하는 상기 주제어부가 억세스할 수 있도록 제어하고, 상기 제1캐시메모리의 캐시 미스가 발생되고 상기 제2캐시메모리의 히트 발생시 상기 캐싱되어 있는 데이터 또는 코드를 해당하는 상기 보조제어부가 억세스할 수 있도록 제어하며, 상기 캐시미스 발생시 상기 메모리들을 억세스하여 데이터 또는 코드를 상기 캐시메모리에 저장하도록 제어하며, 상기 제1 및 제2캐시메모리의 캐시미스 발생시 상기 메모리들을 억세스하여 데이터 또는 코드를 상기 제1 또는 제2캐시메모리에 저장하는 캐시제어부로 구성된 것을 특징으로 하는 상기 장치.
  5. 제4항에 있어서, 상기 캐시제어부가 상기 제1 및 제2캐시메모리의 캐시미스 발생시 상기 보조제어부가 상기 메모리들의 억세스 동작을 중단시켜 버스 충돌을 방지하면서 상기 메모리들의 제1영역의 데이터 또는 코드를 상기 제1캐시메모리에 저장하며, 상기 제1캐시메모리30에 저장할 데이터 또는 코드가 없을 시 상기 메모리들의 제2영역의 데이터 및 코드를 상기 제2캐시메모리에 저장하는 것을 특징으로 하는 특징으로 하는 상기 장치.
  6. 주제어부와,
    상기 주제어부의 제어하에 특정 기능을 수행하는 보조제어부와,
    상기 주제어부의 동작 프로그램들을 저장하는 제1영역 및 상기 보조제어부의 동작 프로그램들을 저장하는 제2영역을 구비하는 제1플래시메모리와,
    상기 주제어부의 콘텐츠 데이터 등과 같은 비휘발을 요구하는 데이터들을 저장하는 제1영역 및 상기 보조제어부의 콘텐츠 데이터 등과 같은 비휘발을 요구하는 데이터들을 저장하는 제2영역을 구비하는 제2플래시메모리와,
    상기 주제어부의 동작 중에 발생되는 데이터를 일시 저장하고 램 영역에서 실행되어야 할 코드의 일부가 로딩되는 제1영역 및 상기 보조제어부이 동작 중에 발생되는 데이터를 일시 저장하고 램 영역에서 실행되어야 할 코드의 일부가 로딩되는 제2영역을 구비하는 램과,
    상기 메모리들과 상기 주제어부 및 보조제어부에 사이에 연결되며, 데이터 및 코드를 모두 캐싱하는 캐시메모리를 구비하는 단말장치의 메모리 제어방법에 있어서,
    상기 캐시메모리의 캐시히트 및 미스를 판단하는 과정과,
    상기 캐시메모리의 캐시히트 발생시 상기 캐싱되어 있는 데이터 또는 코드를 해당하는 상기 주제어부가 억세스할 수 있도록 제어하는 과정과,
    상기 캐시메모리의 캐시미스 발생시 상기 메모리들을 억세스하여 데이터 또는 코드를 상기 캐시메모리에 저장하는 동시에 상기 주제어부에서 억세스할 수 있도록 제어하는 과정과,
    상기 캐시메모리의 캐시미스가 발생된 상태에서 주제어부에서 메모리들을 억세스하지 않을 시 상기 보조제어부가 상기 메모리들을 억세스할 수 있도록 제어하는 과정을 이루어짐을 특징으로 하는 상기 방법.
KR1020030056666A 2003-08-16 2003-08-16 보조제어부를 구비하는 휴대용 단말기의 캐시메모리구현장치 및 방법 KR100703357B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020030056666A KR100703357B1 (ko) 2003-08-16 2003-08-16 보조제어부를 구비하는 휴대용 단말기의 캐시메모리구현장치 및 방법
US10/917,491 US7484047B2 (en) 2003-08-16 2004-08-13 Apparatus and method for composing a cache memory of a wireless terminal having a coprocessor
CNB200410057741XA CN1318981C (zh) 2003-08-16 2004-08-16 用于构成具有协处理器的无线终端的高速缓存存储器的装置和方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020030056666A KR100703357B1 (ko) 2003-08-16 2003-08-16 보조제어부를 구비하는 휴대용 단말기의 캐시메모리구현장치 및 방법

Publications (2)

Publication Number Publication Date
KR20050018255A KR20050018255A (ko) 2005-02-23
KR100703357B1 true KR100703357B1 (ko) 2007-04-03

Family

ID=34132212

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020030056666A KR100703357B1 (ko) 2003-08-16 2003-08-16 보조제어부를 구비하는 휴대용 단말기의 캐시메모리구현장치 및 방법

Country Status (3)

Country Link
US (1) US7484047B2 (ko)
KR (1) KR100703357B1 (ko)
CN (1) CN1318981C (ko)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7167971B2 (en) * 2004-06-30 2007-01-23 International Business Machines Corporation System and method for adaptive run-time reconfiguration for a reconfigurable instruction set co-processor architecture
KR100749469B1 (ko) * 2005-09-15 2007-08-14 엠텍비젼 주식회사 복수의 메모리를 포함한 멀티미디어 플랫폼을 구비한 장치및 비휘발성 메모리 공유 방법
US7983711B2 (en) * 2006-08-24 2011-07-19 Kyocera Corporation Software architecture for dual mode phone and method of use
US8209527B2 (en) * 2006-10-26 2012-06-26 Samsung Electronics Co., Ltd. Memory system and memory management method including the same
KR100803005B1 (ko) * 2006-10-26 2008-02-14 삼성전자주식회사 메모리 인터페이싱 방법과 장치
US9632794B2 (en) * 2009-06-23 2017-04-25 Seiko Epson Corporation Subprocessor, integrated circuit device, and electronic apparatus
KR101691997B1 (ko) * 2010-07-22 2017-01-02 삼성전자 주식회사 영상처리장치 및 그 제어방법
US20120036301A1 (en) * 2010-08-03 2012-02-09 Caspole Eric R Processor support for filling memory regions
KR20120035716A (ko) * 2010-10-06 2012-04-16 주식회사 유니듀 부팅 장치 및 그 방법
CN103597461B (zh) * 2011-09-30 2016-04-27 株式会社日立制作所 闪存组件
US20130227238A1 (en) * 2012-02-28 2013-08-29 Thomas VIJVERBERG Device and method for a time and space partitioned based operating system on a multi-core processor
CN106886495B (zh) * 2015-12-15 2019-10-18 北京兆易创新科技股份有限公司 一种嵌入式系统及其控制方法
KR101886176B1 (ko) * 2016-10-25 2018-08-08 시큐리티플랫폼 주식회사 소유자만 기록 가능한 부트영역을 포함하는 저장장치
US11281589B2 (en) * 2018-08-30 2022-03-22 Micron Technology, Inc. Asynchronous forward caching memory systems and methods
CN111338984B (zh) * 2020-02-25 2022-05-17 大唐半导体科技有限公司 一种Cache RAM与Retention RAM数据高速交换架构及其方法
US20210406170A1 (en) * 2020-06-24 2021-12-30 MemRay Corporation Flash-Based Coprocessor
CN111897747A (zh) * 2020-07-24 2020-11-06 宁波中控微电子有限公司 一种片上协处理器的Cache动态分配方法及片上系统
CN113986001A (zh) * 2021-10-29 2022-01-28 深圳市航顺芯片技术研发有限公司 芯片及控制方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08339326A (ja) * 1995-06-09 1996-12-24 Hitachi Ltd マルチプロセッサ装置

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4959860A (en) * 1989-02-07 1990-09-25 Compaq Computer Corporation Power-on password functions for computer system
US5430859A (en) * 1991-07-26 1995-07-04 Sundisk Corporation Solid state memory system including plural memory chips and a serialized bus
US5388841A (en) * 1992-01-30 1995-02-14 A/N Inc. External memory system having programmable graphics processor for use in a video game system or the like
US5832534A (en) * 1994-01-04 1998-11-03 Intel Corporation Method and apparatus for maintaining cache coherency using a single controller for multiple cache memories
JP3598589B2 (ja) * 1995-06-28 2004-12-08 株式会社日立製作所 プロセッサ
US5764934A (en) * 1996-07-03 1998-06-09 Intel Corporation Processor subsystem for use with a universal computer architecture
US5896513A (en) * 1996-07-03 1999-04-20 Intel Corporation Computer system providing a universal architecture adaptive to a variety of processor types and bus protocols
US5822251A (en) * 1997-08-25 1998-10-13 Bit Microsystems, Inc. Expandable flash-memory mass-storage using shared buddy lines and intermediate flash-bus between device-specific buffers and flash-intelligent DMA controllers
US6360303B1 (en) * 1997-09-30 2002-03-19 Compaq Computer Corporation Partitioning memory shared by multiple processors of a distributed processing system
US5893163A (en) * 1997-12-17 1999-04-06 International Business Machines Corporation Method and system for allocating data among cache memories within a symmetric multiprocessor data-processing system
US6397295B1 (en) * 1999-01-04 2002-05-28 Emc Corporation Cache mechanism for shared resources in a multibus data processing system
JP4082913B2 (ja) * 2002-02-07 2008-04-30 株式会社ルネサステクノロジ メモリシステム
TW533488B (en) * 2002-05-22 2003-05-21 Nanya Technology Corp Manufacturing method of flash memory floating gate
KR100849296B1 (ko) * 2003-06-13 2008-07-29 삼성전자주식회사 주제어부와 보조제어부를 구비하는 시스템에서의보조제어부의 초기화 장치 및 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08339326A (ja) * 1995-06-09 1996-12-24 Hitachi Ltd マルチプロセッサ装置

Also Published As

Publication number Publication date
CN1318981C (zh) 2007-05-30
KR20050018255A (ko) 2005-02-23
CN1607509A (zh) 2005-04-20
US20050038962A1 (en) 2005-02-17
US7484047B2 (en) 2009-01-27

Similar Documents

Publication Publication Date Title
KR100703357B1 (ko) 보조제어부를 구비하는 휴대용 단말기의 캐시메모리구현장치 및 방법
US7213117B2 (en) 1-chip microcomputer having controlled access to a memory and IC card using the 1-chip microcomputer
US7373452B2 (en) Controller for controlling nonvolatile memory
US20080046638A1 (en) Multiprocessor System having an Input/Output (I/O) Bridge Circuit for Transferring Data Between Volatile and Non-Volatile Memory
US7562180B2 (en) Method and device for reduced read latency of non-volatile memory
US7913073B2 (en) System embedding plural controller sharing nonvolatile memory
EP0584783A2 (en) Method and apparatus for improved processing
KR100847968B1 (ko) 컴퓨팅 시스템, 전자 통신 디바이스, 컴퓨팅 시스템 운영 방법 및 정보 처리 방법
US8601229B2 (en) Secure memory access system and method
KR100468634B1 (ko) 데이터 전송 제어장치, 반도체 메모리 장치 및 전자정보장치
KR100849296B1 (ko) 주제어부와 보조제어부를 구비하는 시스템에서의보조제어부의 초기화 장치 및 방법
US6775734B2 (en) Memory access using system management interrupt and associated computer system
US9406388B2 (en) Memory area protection system and methods
KR20060089936A (ko) 메모리 카드에서의 파워다운모드 제어장치 및 방법
US6498750B2 (en) Boot block flash memory control circuit; IC memory card and semiconductor memory device incorporating the same; and erasure method for boot block flash memory
JP2000276370A (ja) マイクロコンピュータ、電子機器及びエミュレーション方法
US5444852A (en) I/O device interface having buffer mapped in processor memory addressing space and control registers mapped in processor I/O addressing space
KR100532417B1 (ko) 디지털 신호 처리장치의 저전력 소비형 캐시 메모리 장치및 이에 대한 제어방법
KR20070032573A (ko) 하드 디스크 드라이브의 플래쉬 메모리를 메인 &비디오메모리로 사용 할 수 있는 컴퓨터
US20020161993A1 (en) Computer start up memory
CN116755605A (zh) 在以快闪存储器为基础的储存装置中快取地址映射资讯的方法与装置
JP2000207235A (ja) 情報処理装置
JPH103423A (ja) メモリ装置
KR19980084747A (ko) 로칼 시스템
JPH1063526A (ja) メモリー装置

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

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20140227

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20150226

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20160226

Year of fee payment: 10

LAPS Lapse due to unpaid annual fee