KR102336528B1 - 캐시 메모리를 가지는 전자 장치 및 그의 운용 방법 - Google Patents

캐시 메모리를 가지는 전자 장치 및 그의 운용 방법 Download PDF

Info

Publication number
KR102336528B1
KR102336528B1 KR1020140084516A KR20140084516A KR102336528B1 KR 102336528 B1 KR102336528 B1 KR 102336528B1 KR 1020140084516 A KR1020140084516 A KR 1020140084516A KR 20140084516 A KR20140084516 A KR 20140084516A KR 102336528 B1 KR102336528 B1 KR 102336528B1
Authority
KR
South Korea
Prior art keywords
data
size
area
storage
cache
Prior art date
Application number
KR1020140084516A
Other languages
English (en)
Other versions
KR20160007874A (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 KR1020140084516A priority Critical patent/KR102336528B1/ko
Priority to US14/792,869 priority patent/US9684604B2/en
Publication of KR20160007874A publication Critical patent/KR20160007874A/ko
Application granted granted Critical
Publication of KR102336528B1 publication Critical patent/KR102336528B1/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/0893Caches characterised by their organisation or structure
    • G06F12/0895Caches characterised by their organisation or structure of parts of caches, e.g. directory or tag array
    • 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/0877Cache access modes
    • G06F12/0886Variable-length word access
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/40Specific encoding of data in memory or cache
    • G06F2212/401Compressed data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/608Details relating to cache mapping

Abstract

본 발명의 다양한 실시예는 캐시 메모리를 가지는 전자 장치 및 그의 운용 방법에 관한 것이다. 상기 전자 장치는 제1크기의 적어도 하나의 저장 공간을 가지는 제1영역 및 제2크기의 적어도 하나의 저장 공간을 가지는 제2영역을 포함하는 다수의 캐시라인을 포함하는 캐시 메모리; 및 상기 캐시 메모리로의 데이터 저장 요청 시 상기 저장 요청된 데이터의 압축 가능한 크기에 따라 상기 저장 요청된 데이터를 상기 제1영역 또는 상기 제2영역의 저장 공간들 중 하나에 저장하는 캐시 제어부를 포함할 수 있다. 또한, 다양한 실시예가 가능하다.

Description

캐시 메모리를 가지는 전자 장치 및 그의 운용 방법{ELECTRONIC DEVICE HAVING CACHE MEMORY AND METHOD FOR OPERATING THEREOF}
본 발명의 다양한 실시예들은 캐시 메모리를 가지는 전자 장치 및 그의 운용 방법에 관한 것이다.
최근 정보통신 기술과 반도체 기술 등의 눈부신 발전에 힘입어 전자 장치의 보급과 이용이 급속도로 증가하고 있으며, 현대인의 필수품이 되고 있다. 이러한 전자 장치는 사용자들이 필요로 하는 다양한 기능을 제공하고 있다. 예를 들어, 전자 장치는 이동 통신 기능, 근거리 무선 통신 기능, 방송 수신 기능, 인터넷 접속 기능 등과 같은 다양한 기능을 제공하고 있다.
일반적으로, 상기 전자 장치는 주 기억 장치(예컨대 메모리)의 접근 지연(access latency)을 최소화하기 위하여 캐시 메모리(cache memory)를 포함하고 있다. 상기 캐시 메모리는 주 기억 장치에서 읽어들인 명령이나 프로그램들로 채워지는 버퍼 형태의 고속 기억 장치를 의미한다. 예를 들어, 전자 장치는 명령 또는 프로그램의 이용이 요구될 때, 주 기억 장치가 아닌 캐시 메모리로부터 명령 또는 프로그램을 리드함에 따라 빠른 실행이 가능하다.
종래의 캐시 메모리는 다수의 캐시 라인들로 구성되며, 각 캐시 라인은 동일한 크기(예컨대 64byte)를 가지는 다수의 저장 공간으로 구성된다. 한편, 종래에는 캐시 메모리에 데이터를 압축하지 않고 저장하였다. 이와 같은 종래의 전자 장치는 캐시 메모리를 효율적으로 사용하지 못하는 문제점이 존재한다. 예를 들어, 캐시 라인의 각 저장 공간의 크기가 64byte이고, 저장할 데이터가 24byte로 압축이 가능할 경우에도 압축하지 않고 64byte로 데이터를 저장하였다.
본 발명의 다양한 실시예들은 캐시 메모리의 저장 공간을 효율적으로 활용할 수 있는 캐시 메모리를 가지는 전자 장치 및 그의 운용 방법을 제공할 수 있다.
본 발명의 다양한 실시예에 따른 전자 장치는 제1크기의 적어도 하나의 저장 공간을 가지는 제1영역 및 제2크기의 적어도 하나의 저장 공간을 가지는 제2영역을 포함하는 다수의 캐시라인을 포함하는 캐시 메모리; 및 상기 캐시 메모리로의 데이터 저장 요청 시 상기 저장 요청된 데이터의 압축 가능한 크기에 따라 상기 저장 요청된 데이터를 상기 제1영역 또는 상기 제2영역의 저장 공간들 중 하나에 저장하는 캐시 제어부를 포함할 수 있다.
본 발명의 다양한 실시예에 따른 전자 장치는 다수의 캐시 라인을 포함하며, 각 캐시 라인이 데이터 저장을 위한 기본 크기보다 작은 크기의 적어도 하나의 저장 공간을 가지는 메인 영역 및 예비 영역을 포함하는 캐시 메모리; 및 상기 캐시 메모리로의 데이터 저장 요청 시 상기 저장 요청된 데이터를 압축하고, 상기 압축된 데이터의 크기가 상기 메인 영역의 하나의 저장 공간의 크기 이하인지 확인하며, 상기 메인 영역의 하나의 저장 공간의 크기 이하인 경우 상기 저장 요청된 데이터를 압축하여 상기 메인 영역의 저장 공간들 중 하나에 저장하는 캐시 제어부를 포함할 수 있다.
본 발명의 다양한 실시예에 따른 제1크기의 적어도 하나의 저장 공간을 가지는 제1영역 및 제2크기의 적어도 하나의 저장 공간을 가지는 제2영역을 포함하는 다수의 캐시라인을 포함하는 캐시 메모리의 운용 방법은 상기 캐시 메모리로의 데이터 저장 요청을 감지하는 동작; 및 상기 저장 요청된 데이터의 압축 가능한 크기에 따라 상기 저장 요청된 데이터를 상기 제1영역의 저장 공간들 중 하나 또는 상기 제2영역의 저장 공간들 중 하나에 저장하는 동작을 포함할 수 있다.
본 발명의 다양한 실시예에 따른 다수의 캐시 라인을 포함하며, 각 캐시 라인이 데이터 저장을 위한 기본 크기보다 작은 크기의 적어도 하나의 저장 공간을 가지는 메인 영역 및 예비 영역을 포함하는 캐시 메모리의 운용 방법은 상기 캐시 메모리로의 데이터 저장 요청을 감지하는 동작; 상기 저장 요청된 데이터를 압축하는 동작; 상기 압축된 데이터의 크기가 상기 메인 영역의 하나의 저장 공간의 크기 이하인지 확인하는 동작; 및 상기 압축된 데이터의 크기가 상기 메인 영역의 하나의 저장 공간의 크기 이하인 경우 상기 압축된 데이터를 상기 메인 영역의 저장 공간들 중 하나에 저장하는 동작을 포함할 수 있다.
본 발명의 다양한 실시예들에 따른 캐시 메모리를 가지는 전자 장치 및 그의 운용 방법은 캐시 메모리의 저장 공간을 캐시 메모리에 저장되는 데이터의 기본 크기보다 작은 크기를 가지는 제1 영역 및 상기 기본 크기를 가지는 제2영역으로 구분하여 형성함에 따라, 모든 저장 공간이 상기 기본 크기를 가지는 종래의 캐시 메모리에 비하여 캐시 메모리의 전체 크기를 작게할 수 있다. 또한, 본 발명의 다양한 실시예들은 제1기준값(제1영역의 각 저장 공간의 크기) 이하로 압축 가능한 데이터를 제1영역에 저장하고, 제1기준값 이하로 압축할 수 없는 데이터를 압축하지 않고 제2영역에 저장함에 따라 캐시 메모리를 효율적으로 운용할 수 있다.
본 발명의 다양한 실시예는 메인 영역과 예비 영역을 포함하는 캐시 메모리에 있어서, 상기 메인 영역 및 예비 영역의 크기를 캐시 메모리에 저장되는 데이터의 기본 크기보다 작은 크기를 가지도록 형성함에 따라, 모든 저장 공간이 상기 기본 크기를 가지는 종래의 캐시 메모리에 비하여 캐시 메모리의 전체 크기를 작게할 수 있다. 또한, 본 발명의 다양한 실시예는 제2기준값(메인 영역의 각 저장 공간의 크기) 이하로 압축가능한 데이터를 메인 영역에 압축하여 저장하고, 제2기준값 이하로 압축할 수 없는 데이터를 압축하지 않고, 상기 메인 영역 및 예비 영역에 분할하여 저장함에 따라 캐시 메모리를 효율적으로 운용할 수 있다.
본 발명의 다양한 실시예는 캐시 메모리의 전체 크기를 종래에 비하여 작게할 수 있어, 캐시 메모리를 가지는 전자 장치의 원가를 감소할 수 있다.
도 1은 본 발명의 다양한 실시예에 따른 전자 장치의 구성을 도시한 블록도이다.
도 2a 및 도 2b는 본 발명의 다양한 실시예에 따른 전자 장치의 구성 중 캐시 메모리의 구성을 도시한 도면이다.
도 3a 및 도 3b는 본 발명의 다양한 실시예에 따른 전자 장치의 구성 중 캐시 제어부 및 캐시 메모리의 구성을 도시한 도면이다.
도 4는 도 2a 및 도 3a의 구성을 가지는 캐시 메모리에 데이터를 저장하는 방법을 설명하기 위한 순서도이다.
도 5는 도 2a 및 도 3a의 구성을 가지는 캐시 메모리로부터 데이터를 리드하는 방법을 설명하기 위한 순서도이다.
도 6은 도 2b 및 도 3b의 구성을 가지는 캐시 메모리에 데이터를 저장하는 방법을 설명하기 위한 순서도이다.
도 7은 도 2b 및 도 3b의 구성을 가지는 캐시 메모리로부터 데이터를 리드하는 방법을 설명하기 위한 순서도이다.
도 8은 종래의 캐시 메모리에 데이터가 저장된 일예를 도시한 도면이다.
도 9는 도 2a 및 도 3a의 구성을 가지는 캐시 메모리에 데이터가 저장된 일예를 도시한 도면이다.
도 10은 도 2b 및 도 3b의 구성을 가지는 캐시 메모리에 데이터가 저장된 일예를 도시한 도면이다.
이하, 첨부된 도면을 참조하여 본 발명의 다양한 실시예들을 설명한다. 특정 실시예들이 도면에 예시되고 관련된 상세한 설명이 기재되어 있으나, 이는 본 발명의 다양한 실시예들을 특정한 형태로 한정하려는 것이 아니다. 예를 들어, 본 발명의 다양한 실시예들은 다양하게 변경될 수 있고 여러 가지 실시예를 가질 수 있다. 본 발명의 다양한 실시예들은 본 발명의 사상 및 기술 범위에 포함되는 모든 변경 및/또는 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
도면의 설명과 관련하여, 유사한 구성요소에 대해서는 유사한 참조 부호가 사용되었다.
본 발명의 다양한 실시예들을 설명하기 위해 사용될 수 있는 "포함한다" 또는 "포함할 수 있다" 등의 표현은 기능, 동작 또는 구성요소 등의 존재를 가리키며, 추가적인 하나 이상의 기능, 동작 또는 구성요소 등이 존재하지 않는 것으로 제한하지는 않는다.
또한, 본 발명의 다양한 실시예들을 설명함에 있어, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
본 발명의 다양한 실시예를 설명함에 있어, "또는" 등의 표현은 함께 나열된 단어들의 어떠한, 그리고 모든 조합을 포함한다. 예를 들어, "A 또는 B"는 A를 포함할 수도, B를 포함할 수도, 또는 A 와 B 모두를 포함할 수도 있다.
본 발명의 다양한 실시예를 설명함에 있어, "제 1", "제2", "첫째" 또는 "둘째" 등의 표현들이 다양한 구성요소들을 수식할 수 있지만, 해당 구성요소들을 한정하지 않는다. 예를 들어, 상기 표현들은 해당 구성요소들의 순서 및/또는 중요도 등을 한정하지 않는다. 상기 표현들은 한 구성요소를 다른 구성요소와 구분 짓기 위해 사용될 수 있다. 예를 들어, 제1 사용자 기기와 제 2 사용자 기기는 모두 사용자 기기이며, 서로 다른 사용자 기기를 나타낸다. 예를 들어, 본 발명의 다양한 실시예들의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해될 수 있어야 할 것이다.
본 발명의 실시예를 설명하기 위해 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명의 실시예를 한정하려는 의도가 아니다. 또한, 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 명백하게 정의하지 않은 용어는 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
본 발명의 다양한 실시예에 따른 전자 장치는, 캐시(cache) 메모리를 포함하는 장치일 수 있다. 예를 들면, 전자 장치는 스마트 폰(smartphone), 태블릿 PC(tablet personal computer), 이동 전화기(mobile phone), 화상전화기, 전자북 리더기(e-book reader), 데스크탑 PC(desktop personal computer), 랩탑 PC(laptop personal computer), 넷북 컴퓨터(netbook computer), PDA(personal digital assistant), PMP(portable multimedia player), MP3 플레이어, 모바일 의료기기, 카메라(camera), 또는 웨어러블 장치(wearable device)(예: 전자 안경과 같은 head-mounted-device(HMD), 전자 의복, 전자 팔찌, 전자 목걸이, 전자 앱세서리(appcessory), 전자 문신, 또는 스마트 와치(smartwatch))중 적어도 하나를 포함할 수 있다.
어떤 실시예들에 따르면, 전자 장치는 캐시 메모리를 포함하는 스마트 가전 제품(smart home appliance)일 수 있다. 스마트 가전 제품은, 예를 들자면, 전자 장치는 텔레비전, DVD(digital video disk) 플레이어, 오디오, 냉장고, 에어컨, 청소기, 오븐, 전자레인지, 세탁기, 공기 청정기, 셋톱 박스(set-top box), TV 박스(예를 들면, 삼성 HomeSyncTM, 애플TVTM, 또는 구글 TVTM), 게임 콘솔(game consoles), 전자 사전, 전자 키, 캠코더(camcorder), 또는 전자 액자 중 적어도 하나를 포함할 수 있다.
어떤 실시예들에 따르면, 전자 장치는 각종 의료기기(예: MRA(magnetic resonance angiography), MRI(magnetic resonance imaging), CT(computed tomography), 촬영기, 초음파기 등), 네비게이션(navigation) 장치, GPS 수신기(global positioning system receiver), EDR(event data recorder), FDR(flight data recorder), 자동차 인포테인먼트(infotainment) 장치, 선박용 전자 장비(예: 선박용 항법 장치 및 자이로 콤파스 등), 항공 전자기기(avionics), 보안 기기, 차량용 헤드 유닛, 산업용 또는 가정용 로봇, 금융 기관의 ATM(automatic teller's machine) 또는 상점의 POS(point of sales) 중 적어도 하나를 포함할 수 있다.
어떤 실시예들에 따르면, 전자 장치는 캐시 메모리를 포함하는 가구(furniture) 또는 건물/구조물의 일부, 전자 보드(electronic board), 전자 사인 입력장치(electronic signature receiving device), 프로젝터(projector), 또는 각종 계측기기(예: 수도, 전기, 가스, 또는 전파 계측 기기 등) 중 적어도 하나를 포함할 수 있다.
본 발명의 다양한 실시예들에 따른 전자 장치는 전술한 다양한 장치들 중 하나 또는 그 이상의 조합일 수 있다. 또한, 본 발명의 다양한 실시예들에 따른 전자 장치는 플렉서블 장치일 수 있다. 또한, 본 발명의 다양한 실시예들에 따른 전자 장치는 전술한 기기들에 한정되지 않음은 당업자에게 자명하다.
이하, 첨부된 도면을 참조하여 다양한 실시예에 따른 전자 장치에 대해서 살펴본다. 다양한 실시예들을 설명하기 위해 사용되는 사용자라는 용어는 전자 장치를 사용하는 사람 또는 전자 장치를 사용하는 장치(예: 인공지능 전자 장치)를 지칭할 수 있다.
도 1은 본 발명의 다양한 실시예에 따른 전자 장치의 구성을 도시한 블록도이고, 도 2a 및 도 2b는 본 발명의 다양한 실시 예들에 따른 전자 장치의 구성 중 캐시 메모리의 구성을 도시한 도면이며, 도 3a 및 도 3b는 본 발명의 다양한 실시 예들에 따른 전자 장치의 구성 중 캐시 제어부 및 캐시 메모리의 구성을 도시한 도면이다.
상기 도 1 내지 도 3b를 참조하면, 본 발명의 다양한 실시예에 따른 전자 장치 100는 제어부 110, 저장부 120 및 터치스크린 130을 포함할 수 있다.
상기 제어부 110는 전자 장치 100의 전반적인 동작 및 전자 장치 100의 내부 블록들 간 신호 흐름을 제어하고, 데이터를 처리하는 데이터 처리 기능을 수행할 수 있다. 예를 들어, 상기 제어부 110는 중앙 처리 장치(Central Processing Unit : CPU), 어플리케이션 프로세서(Application Processor : AP) 등으로 형성될 수 있다. 또한, 상기 제어부 110는 싱글 코어 프로세서(single core processor) 또는 멀티 코어 프로세서(multi-core processor)로 형성될 수 있다.
본 발명의 실시예에 따른 상기 제어부 110는 캐시 제어부(cache controller) 111 및 캐시 메모리(cache memory) 113 를 포함할 수 있다.
상기 캐시 메모리 113는 자주 사용하는 데이터 또는 명령(이하 데이터로 통칭함)들을 일시적으로 저장하는 고속 기억 장치를 의미한다. 상세하게는, 상기 캐시 메모리 113는 상대적으로 빠른 처리 속도를 가지는 제어부 110(예컨대 CPU)와 상대적으로 느린 처리 속도를 가지는 저장부 120(예컨대 RAM(Random Access Memory)) 사이에 위치하여, 자주 사용하는 데이터들을 임시 저장할 수 있다. 예를 들어, 상기 저장부 120에 사용되는 기억 소자는 (Dynamic-RAM:DRAM)으로 그 은 100 ~ 150ns이다. 상기 캐시 메모리 113에 사용되는 기억 소자는 (SRAM)으로 접근 시간은 수 ~ 수십 ns이다. 이와 같이, 상기 캐시 메모리 113는 저장부 120의 1/5에서 1/20 정도로 데이터에 대한 을 가능하도록 한다. 이는 상기 캐시 메모리 113에 저장된 데이터들에 대한 신속한 처리를 가능하도록 한다.
본 발명의 다양한 실시예에 따른 캐시 메모리 113의 구조에 대하여, 도 2a 및 도 2b를 참조하여 설명하기로 한다. 이하에서는 본 발명의 각 실시예에 따라 상기 캐시 메모리 113 을 제1캐시 메모리 113a 와 제2캐시 메모리 113b로 구분하여 설명하기로 한다.
먼저, 상기 도 2a를 참조하면, 상기 제1캐시 메모리 113a는 캐시 태그 113a_1 및 캐시 데이터 113a_2를 포함할 수 있다.
상기 캐시 태그 113a_1는 캐시 데이터 113a_2 상의 데이터가 저장부 120의 어디에 저장되어 있던 데이터인지, 유효한 데이터인지, 압축된 데이터 인지 등과 관련된 정보를 포함할 수 있다. 예를 들어, 상기 캐시 태그 113a_1는 주소 정보 13a_1 및 상태 정보 13a_2를 포함할 수 있다.
상기 주소 정보 13a_1은 상기 캐시 데이터 113a_2에 저장된 데이터에 대응하는 데이터가 저장된 저장부 120 상의 주소를 의미한다. 다시 말해, 상기 저장부 120에 저장된 데이터와 상기 제1캐시 메모리 113a에 저장된 데이터는 상기 캐시 태그 113a_1의 주소 정보 13a_1을 통해 매핑될 수 있다.
상기 상태 정보 13a_2는 캐시 데이터 113a_2의 상태를 나타낼 수 있다. 예를 들어, 상기 상태 정보 13a_2는 데이터의 압축 여부, 데이터의 유효 여부 및 데이터의 수정 여부를 나타내는 정보를 포함할 수 있다.
상기 캐시 데이터 113a_2는 저장 요청된 데이터를 저장할 수 있다. 본 발명의 실시 예에 따른 캐시 데이터 113a_2는 압축 데이터를 저장하기 위한 제1영역 13b_1 및 비압축 데이터를 저장하기 위한 제2영역 13b_2을 포함할 수 있다. 상기 제1영역 13b_1 및 제2영역 13b_2은 다수의 저장 공간들로 구성될 수 있다. 상기 캐시 데이터 113a_2의 하나의 캐시 라인이 가지는 저장 공간 수는 종래의 캐시 메모리와 동일할 수 있다. 다시 말해, 하나의 캐시 라인에 포함되는 제1영역 13b_1의 저장 공간 수 및 제2영역 13b_2의 저장 공간 수의 합은 종래의 캐시 메모리와 동일하게 8이 될 수 있다.
상기 제1영역 13b_1의 각 저장 공간은 제1크기를 가지고, 제2영역 13b_2의 각 저장 공간은 제2크기를 가질 수 있다. 여기서, 상기 제2크기는 제1캐시 메모리 113a (또는 저장부 120)에 저장되는 데이터의 기본 크기가 될 수 있다. 상기 제1 크기는 제2 크기보다 작을 수 있다. 예를 들어, 상기 제1크기는 제2크기의 1/2로 설정될 수 있다. 예를 들어, 상기 제1영역 13b_1의 각 저장 공간들은 32byte의 크기를 가지고, 상기 제2영역 13b_2의 각 저장 공간들은 64byte의 크기를 가질 수 있다. 하지만, 본 발명이 이에 한정되지는 않고, 상기 제1영역 13b_1의 각 저장 공간의 크기는 다양하게 설정될 수 있다. 예를 들어, 상기 제1영역 13b_1의 각 저장 공간들의 크기는 제1캐시 메모리 113a에 저장되는 데이터의 속성에 따라 변경될 수 있다. 예를 들어, 압축률이 큰 데이터를 주로 처리할 경우 상기 제1영역 13b_1의 각 저장 공간은 제2크기의 1/2보다 작게 설정될 수 있으며, 압축률이 작은 데이터를 주로 처리할 경우 상기 제1영역 13b_1의 각 저장 공간은 제2크기의 1/2보다 크고, 제2크기보다 작게 설정될 수 있다.
또한, 상기 도 2a에서는 각 캐시 라인이 제1크기의 저장 공간 및 제2크기의 저장 공간을 각각 4개씩 포함하고 있는 것으로 도시하였다. 하지만, 본 발명이 이에 한정되지는 않는다. 상기 각 캐시 라인에서 제1크기의 저장 공간 및 제2크기의 저장 공간의 수는 설계자의 의도에 따라 변경 가능하다. 예를 들어, 각 캐시 라인은 제1크기의 저장 공간을 3개 포함하고, 제2크기의 저장 공간을 5개을 포함할 수 있다. 또는, 각 캐시 라인의 제1 크기의 저장 공간의 수 및 제2크기의 저장 공간의 수의 비는 데이터의 속성에 따라 변경될 수 있다. 예를 들어, 압축률이 큰 데이터를 주로 처리할 경우 상기 제1크기의 저장 공간의 수를 증가(예컨대 6:2)시키고, 압축률이 작은 데이터를 주로 처리할 경우 상기 제1크기의 저장 공간의 수를 감소(예컨대 2:6)시킬 수 있다.
상술한 도 2a에 따른 제1캐시 메모리 113a의 각 캐시 라인은 384 byte(= 64*4 + 32*4)의 크기를 가진다. 이와 같이, 본 발명의 실시예에 따른 제1캐시 메모리 113a는 각 캐시 라인이 512 byte(= 64*8)의 크기를 가지는 종래의 캐시 메모리에 비하여 작은 크기를 가진다. 이러한 구조를 가지는 캐시 데이터 113a_2의 데이터 저장 방법에 대한 상세한 설명은 후술하기로 한다.
상기 도 2b를 참조하면, 상기 제2캐시 메모리 113b는 캐시 태그 113b_1 및 캐시 데이터 113b_2를 포함할 수 있다.
상기 캐시 태그 113b_1는 주소 정보 13c_1, 상태 정보 13c_2 및 매핑 정보 13c_3를 포함할 수 있다.
상기 주소 정보 13c_1 및 상태 정보 13c_2는 도 2a에서 설명하였으므로 생략하기로 한다. 상기 매핑 정보 13c_3는 메인 영역 13d_1 및 예비 영역13d_2에 분할되어 저장된 데이터들의 상호 연결 정보를 나타낸다. 예를 들어, 캐시 데이터 113b_2에 저장 요청된 데이터를 메인 영역 13d_1의 저장 공간의 크기 이하로 압축할 수 없는 경우 상기 저장 요청된 데이터는 2개로 분할(제1분할 데이터 및 제2분할 데이터)되고, 메인 영역 13d_1의 저장 공간 중 하나 및 예비 영역 13d_2의 저장 공간 중 하나에 각각 저장될 수 있다. 이때, 상기 제2분할 데이터가 예비 영역 13d_2의 저장 공간들 중 어디에 저장되었는지를 나타내는 위치 정보가 상기 메인 영역 13d_1에 저장된 제1분할 데이터에 대한 캐시 태그 113b_1의 매핑 정보 13c_3에 저장될 수 있다. 상기 위치 정보는 예비 영역 13d_2의 저장 공간을 나타내는 숫자가 될 수 있다. 예를 들어, 상기 위치 정보가 "1"인 경우 예비 영역 13d_2의 첫 번째 저장 공간에 제2분할 데이터가 저장되었음을 의미하고, 상기 위치 정보가 "2"인 경우 예비 영역 13d_2의 두 번째 저장 공간에 제2분할 데이터가 저장되었음을 의미하고, 상기 위치 정보가 "3"인 경우 예비 영역 13d_2의 세 번째 저장 공간에 제2분할 데이터가 저장되었음을 의미하며, 상기 위치 정보가 "4"인 경우 예비 영역 13d_2의 네 번째 저장 공간에 제2분할 데이터가 저장되었음을 의미할 수 있다.
상기 캐시 데이터 113b_2는 메인 영역 13d_1 및 예비 영역 13d_2를 포함할 수 있다. 상기 메인 영역 13d_1 및 예비 영역 13d_2의 각 저장 공간들은 동일 또는 상이한 크기를 가질 수 있다. 상기 메인 영역 13d_1 및 예비 영역 13d_2의 각 저장 공간들은 제2캐시 메모리 113b에 저장되는 데이터의 기본 크기보다 작은 값(예컨대 1/2)을 가질 수 있다. 상기 메인 영역 13d_1의 하나의 저장 공간 및 예비 영역 13d_2의 하나의 저장 공간의 합은 제2캐시 메모리 113b에 저장되는 데이터의 기본 크기와 같을 수 있다. 예를 들어, 상기 저장되는 데이터의 기본 크기가 64byte인 경우 상기 메인 영역 13d_1 및 예비 영역 13d_2의 각 저장 공간은 32byte의 크기를 가질 수 있다. 또는, 상기 메인 영역 13d_1의 각 저장 공간은 24 byte의 크기를 가지고, 예비 영역 13d_2의 각 저장 공간은 40 byte의 크기를 가질 수 있다. 반대로, 상기 메인 영역 13d_1의 각 저장 공간은 40 byte의 크기를 가지고, 예비 영역 13d_2의 각 저장 공간은 24 byte의 크기를 가질 수도 있다. 상기 메인 영역 13d_1의 각 저장 공간의 크기 및 예비 영역 13d_2의 각 저장 공간의 크기는 저장되는 데이터의 속성에 따라 달라질 수 있다. 예를 들어, 압축률이 큰 데이터를 주로 처리하는 경우 상기 메인 영역 13d_1의 각 저장 공간의 크기를 작게 설정하고, 상기 예비 영역 13d_2의 각 저장 공간 크기를 크게 설정할 수 있다. 반대로, 압축률이 작은 데이터를 주로 처리하는 경우 상기 메인 영역 13d_1의 각 저장 공간의 크기를 크게 설정하고, 상기 예비 영역 13d_2의 각 저장 공간 크기를 작게 설정할 수 있다.
상기 캐시 데이터 113b_2의 각 캐시 라인의 메인 영역 13d_1은 종래의 캐시 메모리와 동일한 수의 저장 공간을 포함하고, 예비 영역 13d_2는 메인 영역 13d_1의 저장 공간 수보다 적은 수(예컨대 1/2)의 저장 공간을 포함할 수 있다. 예를 들어, 상기 제2캐시 메모리 113b의 메인 영역 13d_1은 8개의 저장 공간을 포함하며, 상기 예비 영역 13d_2는 4개의 저장 영역을 포함할 수 있다. 하지만, 본 발명의 실시예가 이에 한정되지는 않는다. 예를 들어, 각 캐시 라인의 예비 영역 13d_2의 저장 공간 수는 압축하여 저장할 수 없는 데이터를 주로 처리하는 경우 증가되고, 압축하여 저장할 수 있는 데이터를 주로 처리하는 경우 감소될 수 있다.
상술한 도 2b에 따른 제2캐시 메모리 113b의 각 캐시 라인은 384 byte(= 32 * 8 + 32 * 4)의 크기를 가진다. 본 발명의 실시예에 따른 제2캐시 메모리 113b는 각 캐시 라인이 512 byte(= 64 * 8)의 크기를 가지는 종래의 캐시 메모리에 비하여 작은 크기를 가진다. 이러한 구조를 가지는 캐시 데이터 113b_2에 대한, 상세한 설명은 후술하기로 한다.
상기 캐시 제어부 111는 캐시 메모리 113에 데이터를 저장하거나, 캐시 메모리 113에 저장된 데이터를 리드(read)하는 동작을 제어할 수 있다. 예를 들어, 상기 캐시 제어부 111는 캐시 메모리 113에 데이터를 저장(예컨대 로드(load) 또는 수정)하는 동작을 제어하거나, 캐시 메모리 113로부터 데이터를 리드(read)하는 동작을 제어할 수 있다.
여기서, 본 발명의 다양한 실시예에 따른 캐시 제어부111에 대하여, 도 3a 및 도 3b를 참조하여 설명하기로 한다.
먼저, 상기 도 3a를 참조하면, 상기 캐시 제어부 111는 압축 가능한 데이터를 압축하는 압축부 111a 및 상기 압축된 데이터를 원래의 데이터로 복원하는 복원부 111b를 포함할 수 있다.
상기 캐시 제어부 111는 데이터의 저장(로드 또는 수정) 요청 시 저장 요청된 데이터를 압축부 111a로 전송하여 압축할 수 있다. 상기 캐시 제어부 111는 압축된 데이터의 크기가 기 설정된 크기(이하 제1기준값) 이하인지 확인할 수 있다. 여기서 상기 제1기준값은 제1영역 13b_1의 저장 공간의 하나의 크기가 될 수 있다. 예를 들어, 상기 제1기준값은 32byte일 수 있다.
상기 압축된 데이터의 크기가 제1기준값 이하인 경우 상기 캐시 제어부 111는 압축된 데이터를 제1캐시 메모리 113a의 제1영역 13b_1의 저장 공간들 중 하나에 저장할 수 있다.
반면에, 상기 압축된 데이터의 크기가 제1기준값을 초과하는 경우 상기 캐시 제어부 111는 저장 요청된 데이터를 상기 제1캐시 메모리 113a의 제2영역 13b_2의 저장 공간들 중 하나에 저장할 수 있다. 이때, 상기 캐시 제어부 111는 도 3a의 점선으로 도시된 바와 같이, 압축 없이 상기 저장 요청된 데이터를 제2영역 13b_2의 저장 공간들 중 하나에 바로 저장할 수 있다. 또는, 도시하지는 않았지만, 상기 캐시 제어부 111는 상기 압축부 111a에 의해 압축된 데이터를 복원부 111b를 통해 복원하여 제2영역 13b_2의 저장 공간들 중 하나에 저장할 수 있다.
상기 데이터의 리드 요청 시 상기 캐시 제어부 111는 상기 제1영역 13b_1에 저장된 데이터(이하, 압축 데이터)를 복원부 111b에 의해 복원하고, 복원된 데이터를 제어부 110로 전송할 수 있다. 상기 캐시 제어부 111는 상기 제2영역 13b_2에 저장된 데이터(이하, 비압축 데이터)를 제어부 110로 바로 전송할 수 있다.
상기 도 3b를 참조하면, 상기 캐시 제어부 111는 압축부 111a, 복원부 111b, 분할부 111c 및 결합부 111d를 포함할 수 있다.
상기 캐시 제어부 111는 데이터의 저장(로드 또는 수정) 요청 시 저장 요청된 데이터를 압축부 111a로 전송하여 압축할 수 있다. 상기 캐시 제어부 111는 압축된 데이터의 크기가 기 설정된 크기(이하 제2기준값) 이하인지 확인할 수 있다. 여기서 상기 제2기준값은 메인 영역 13d_1의 하나의 저장 공간의 크기가 될 수 있다. 예를 들어, 상기 제2기준값은 32byte일 수 있다.
상기 압축된 데이터의 크기가 제2기준값 이하인 경우 상기 캐시 제어부 111는 압축된 데이터를 제2캐시 메모리 113b의 메인 영역 13d_1의 저장 공간들 중 하나에 저장할 수 있다.
반면에, 상기 압축된 데이터의 크기가 제2기준값을 초과하는 경우 상기 캐시 제어부 111는 저장 요청된 데이터를 분할부 111c로 전송하고, 분할된 데이터를 상기 제2캐시 메모리 113b의 메인 영역 13d_1 및 예비 영역 13d_2에 각각 저장할 수 있다. 예를 들어, 32byte 이하의 크기로 압축할 수 없는 데이터(64byte의 크기를 가짐)를 저장하는 경우 상기 캐시 제어부 111는 저장 요청된 데이터를 32 byte의 크기를 가지는 2개의 데이터(이하, 제1분할 데이터 및 제2분할 데이터)로 분할하고, 상기 제1분할 데이터를 메인 영역 13d_1의 저장 공간들 중 하나에 저장하고, 상기 제2분할 데이터를 예비 영역 13d_2의 저장 공간들 중 하나에 저장할 수 있다. 이때, 상기 캐시 제어부 111는 상기 제2분할 데이터가 저장된 예비 영역 13d_2의 저장 공간 위치를 캐시 태그 113b_1의 매핑 정보 13c_3에 저장할 수 있다. 예를 들어, 상기 제2분할 데이터가 예비 영역 13d_2의 첫 번째 저장 공간에 저장된 경우 상기 캐시 제어부 111는 상기 캐시 태그 113b_1의 매핑 정보 13c_3에 "1"을 저장할 수 있다. 이는 일 예일 뿐, 본 발명을 한정하지 않으며, 다양한 방법이 이용될 수 있음은 본 발명의 기술 분야에서 통상의 지식을 가진 자에게 있어 자명할 것이다.
상기 캐시 제어부 111는 데이터의 리드 요청 시 리드 요청된 데이터의 압축 여부를 확인하고, 압축 데이터인 경우 복원부 111b를 통해 압축 데이터를 복원하여 제어부 110로 전송할 수 있다. 반면에, 상기 리드 요청된 데이터가 압축 데이터가 아닌 경우(예컨대, 리드 요청된 데이터가 상기 메인 영역 13d_1 및 예비 영역 13d_2에 분할되어 저장된 경우) 상기 캐시 제어부 111는 캐시 태그 113b_1의 매핑 정보 13c_3를 통해 제2분할 데이터의 저장 위치를 확인하고, 결합부 111d를 통해 메인 영역 13d_1의 제1분할 데이터 및 예비 영역 13d_2의 제2분할 데이터를 결합하여 제어부 110로 전송할 수 있다.
한편, 상기 도 1에서는 캐시 메모리 113가 제어부 110에 포함된 것으로 도시하였지만, 본 발명의 실시예는 이에 한정되지 않는다. 예를 들어, 상기 캐시 메모리 113는 별도의 구성으로 전자 장치 100에 포함되거나, 타 구성(예컨대 저장부 120, 표시부 131)에 포함될 수 있다. 또한, 이상에서는 전자 장치 100가 하나의 캐시 메모리 113를 포함하는 것으로 도시하였지만, 본 발명의 실시예는 이에 한정되지 않는다. 예를 들어, 상기 전자 장치 100는 다수의 캐시 메모리를 포함할 수 있다.
상기 저장부 120는 전자 장치 100의 운영체제(OS, Operating System)를 비롯하여, 기타 옵션(options) 기능 예컨대, 소리 재생 기능, 이미지 또는 동영상 재생 기능, 인터넷 접속 기능, 문자 메시지 기능, 지도 서비스 기능 등에 필요한 응용 프로그램을 저장할 수 있다. 또한, 상기 저장부 120는 다양한 데이터 예를 들어, 동영상 데이터, 게임 데이터, 음악 데이터, 영화 데이터, 지도 데이터 등을 저장할 수 있다. 상기 저장부 120는 전자 장치 100를 제어하기 위한 다양한 데이터 또는 명령을 저장할 수 있다. 상기 데이터 또는 명령은 캐시 메모리 113에 저장될 수 있다.
본 발명의 다양한 실시예에 따른 저장부 120는 캐시 메모리 113에 데이터를 로드 또는 수정하는 절차 및 캐시 메모리 113로부터 데이터를 리드하는 절차를 운용하기 위한 운용 프로그램을 저장할 수 있다. 상기 운용 프로그램은 로드 또는 수정 요청된 데이터를 압축하는 루틴, 압축된 데이터를 원래의 데이터로 복원하는 루틴, 제1기준값 이하로 압축된 압축 데이터를 제1영역 13b_1에 저장하고, 비압축 데이터를 제2영역 13b_2에 저장하는 루틴, 제2기준값 이하로 압축 데이터를 메인 영역 13d_1 에 저장하고, 비압축 데이터를 메인 영역 13d_1 및 예비 영역 13d_2에 분할하여 저장하는 루틴, 메인 영역 13d_1 및 예비 영역 13d_2에 분할되어 저장된 분할 데이터들을 결합하는 루틴 등을 포함할 수 있다.
상기 터치스크린 130은 입력 기능 및 표시 기능을 수행할 수 있다. 이를 위하여 상기 터치스크린 130은 표시부 131 및 터치 감지부 133를 포함할 수 있다.
상기 표시부 131는 전자 장치 100의 각종 메뉴를 비롯하여 사용자가 입력한 정보 또는 사용자에게 제공하기 위한 정보를 표시할 수 있다. 이러한 상기 표시부 131는 액정 표시 장치(Liquid Crystal Display), OLED(Organic Light Emitted Diode), AMOLED(Active Matrix Organic Light Emitted Diode) 등으로 형성될 수 있다. 상기 표시부 131는 전자 장치 100의 이용에 따른 다양한 화면 예컨대 홈 화면, 메뉴 화면, 웹 페이지 화면, 통화 화면 등을 제공할 수 있다. 또한, 상기 표시부 131는 캐시 메모리 113로부터 리드된 명령 또는 어플리케이션 등에 대응하는 화면을 제공할 수 있다.
상기 터치 감지부 133는 입력 기능을 제공하기 위한 장치로, 터치입력수단 예컨대 사용자의 손가락, 스타일러스(Stylus), 전자 펜 등이 접촉 또는 근접되는 경우 터치 이벤트를 생성하고, 상기 생성된 터치 이벤트를 제어부 110에 전달할 수 있다. 상세하게는, 상기 터치 감지부 133는 터치입력수단의 접촉 또는 근접에 따른 물리량(예컨대 정전 용량, 저항값 등)의 변화를 통해 터치 이벤트의 발생을 인식하고, 발생된 터치 이벤트의 종류(탭(Tap), 터치 이동(드래그(Drag), 플릭(Flick) 등), 롱 터치(Long touch), 더블 터치(Double touch), 멀티 터치(Multi-touch) 등) 및 터치 위치 정보를 제어부 110에 전달할 수 있다.
한편, 상기 도 1에 도시하지 않았지만 상기 전자 장치 100는 상기 언급된 구성 요소들과 동등한 수준의 구성 요소들을 더 포함할 수 있다. 예를 들어, 본 발명의 다양한 실시예에 따른 전자 장치 100는 정지 영상 또는 동영상을 촬영하기 위한 카메라 모듈, 방송 수신을 위한 방송 수신 모듈, 및 MP3 모듈과 같은 디지털 음원 재생 모듈 등의 부가 기능을 갖는 구성 요소들을 선택적으로 더 포함할 수 있다.
도 4는 도 2a 및 도 3a의 구성을 가지는 캐시 메모리에 데이터를 저장하는 방법을 설명하기 위한 순서도이다.
상기 도 1 내지 도 4를 참조하면, 본 발명의 다양한 실시예에 따른 전자 장치 100의 캐시 제어부 111는 401 동작에서 제1캐시 메모리 113a로의 데이터 저장 요청을 감지할 수 있다. 상기 데이터 저장 요청은 데이터의 로드 및 데이터의 수정 요청을 포함할 수 있다. 여기서, 상기 데이터 저장 요청이 데이터 수정 요청인 경우 상기 401 동작 이후 상기 수정 요청된 데이터가 제1영역 13b_1에 위치하는지 확인(예컨대 압축 데이터인지 확인)하고, 상기 제1영역 13b_1에 위치하지 않는 경우 후술하는 409 동작으로 진행하고, 상기 제1영역 13b_1에 위치하는 경우 상기 403 동작으로 진행하는 동작을 더 포함할 수 있다.
상기 캐시 제어부 111는 403동작에서 상기 저장 요청된 데이터를 압축할 수 있다. 예를 들어, 상기 캐시 제어부 111는 저장 요청된 데이터를 압축부 111a로 전송하여 압축할 수 있다.
상기 캐시 제어부 111는 405 동작에서 압축 데이터의 크기가 기 설정된 제1기준값 이하인지 확인할 수 있다. 여기서, 상기 제1기준값은 제1영역13b_1의 하나의 저장 공간의 크기가 될 수 있다. 예컨대 상기 제1기준값은 32byte일 수 있다.
상기 압축 데이터의 크기가 상기 제1기준값 이하인 경우 상기 캐쉬 제어부 111는 407 동작으로 진행하여, 제1영역 13b_1에 상기 압축 데이터를 저장할 수 있다. 예를 들어, 캐시 제어부 111는 제1영역 13b_1의 저장 공간들 중 하나에 상기 압축 데이터를 저장할 수 있다.
상기 압축 데이터의 크기가 상기 제1기준값을 초과하는 경우 상기 캐시 제어부 111는 409 동작으로 진행하여 제2영역 13b_2 에 상기 저장 요청된 데이터(비압축 데이터)를 저장할 수 있다. 예를 들어, 상기 캐시 제어부 111는 제2영역 13b_2의 저장 공간들 중 하나에 상기 비압축 데이터를 저장할 수 있다. 또는, 상기 캐시 제어부 111는 상기 403 동작에서 압축된 데이터를 복원부 111b를 통해 복원하고, 복원된 데이터를 제2영역 13b_2의 저장 공간들 중 하나에 저장할 수 있다.
본 발명의 다른 실시예에 따르면, 상기 캐시 제어부 111는 비압축 데이터를 저장하는 제2영역 13b_2이 거의 사용되지 않고, 압축 데이터를 저장하는 제1영역 13b_1이 모두 사용되고 있을 경우 제1기준값 이하로 압축 가능한 데이터들을 압축없이 제2영역 13b_2에 저장하도록 하여 제1캐시 메모리 113a에 대한 효율성을 향상시킬 수도 있다.
도 5는 도 2a 및 도 3a의 구성을 가지는 캐시 메모리로부터 데이터를 리드하는 방법을 설명하기 위한 순서도이다.
상기 도 1 내지 도 5를 참조하면, 본 발명의 실시예에 따른 전자 장치 100의 캐시 제어부 111는 501 동작에서 제1캐시 메모리 113a의 데이터 리드 요청을 감지할 수 있다. 상기 캐시 제어부 111는 503 동작에서 상기 리드 요청된 데이터가 제1영역 13b_1에 위치하는지 확인할 수 있다. 다시말해, 상기 캐시 제어부 111는 상기 리드 요청된 데이터가 압축 데이터인지 확인할 수 있다. 상기 캐시 제어부 111는 캐시 태그 113a_1의 상태 정보 13a_2에 포함된 압축 여부를 나타내는 정보를 통해 압축 데이터의 여부를 확인할 수 있다.
상기 리드 요청된 데이터가 제1영역 13b_1에 위치하지 않는 경우 상기 캐시 제어부 111는 후술하는 507 동작으로 진행할 수 있다. 반면에, 상기 리드 요청된 데이터가 제1영역 13b_1에 위치하는 경우 상기 캐시 제어부 111는 505 동작으로 진행하여 압축 데이터를 복원할 수 있다. 예를 들어, 상기 캐시 제어부 111는 복원부 111b를 통해 압축 데이터를 복원할 수 있다.
상기 캐시 제어부 111는 507 동작에서 데이터를 리드할 수 있다. 예를 들어, 상기 캐시 제어부 111는 제1영역 13b_1에 저장된 압축 데이터를 복원한 복원 데이터 또는 제2영역 13b_2에 저장된 비압축 데이터를 제어부 110로 전송할 수 있다.
도 6은 도 2b 및 도 3b의 구성을 가지는 캐시 메모리에 데이터를 저장하는 방법을 설명하기 위한 순서도이다.
상기 도 1 내지 도 6을 참조하면, 본 발명의 다양한 실시 예에 따른 전자 장치 100의 캐시 제어부 111는 601 동작에서 제2캐시 메모리 113b로의 데이터 저장 요청을 감지할 수 있다. 상기 데이터 저장 요청은 데이터의 로드 및 데이터의 수정 요청을 포함할 수 있다. 상기 데이터 저장 요청이 데이터 수정 요청인 경우 상기 601 동작 이후 상기 수정 요청된 데이터가 압축 데이터인지 확인하고, 압축 데이터인 경우 후술하는 603 동작으로 진행하고, 압축 데이터가 아닌 경우 후술하는 607 동작으로 진행하는 동작을 더 포함할 수 있다.
상기 캐시 제어부 111는 603동작에서 상기 저장 요청된 데이터를 압축할 수 있다.
상기 캐시 제어부 111는 605 동작에서 압축 데이터의 크기가 기 설정된 제2기준값을 초과하는지 확인할 수 있다. 여기서, 상기 제2기준값은 메인 영역13d_1의 하나의 저장 공간의 크기가 될 수 있다. 예컨대, 상기 제2기준값은 32byte일 수 있다.
상기 압축 데이터의 크기가 상기 제2기준값을 초과하는 경우 상기 캐쉬 제어부 111는 607 동작으로 진행하여, 상기 저장 요청된 데이터(비압축 데이터)를 분할하여 상기 메인 영역 13d_1 및 예비 영역 13d_2에 저장할 수 있다. 예를 들어, 상기 캐시 제어부 111는 분할부 111c를 통해 비압축 데이터를 2개의 데이터로 분리하여 메인 영역 13d_1의 저장 공간들 중 하나 및 예비 영역 13d_2의 저장 공간들 중 하나에 저장할 수 있다. 상세하게는, 상기 캐시 제어부 111는 비압축 데이터를 메인 영역 13d_1 및 예비 영역 13d_2의 저장 공간의 크기를 기준으로 분할할 수 있다. 예를 들어, 상기 메인 영역 13d_1 및 예비 영역 13d_2의 저장 공간의 크기가 32byte 인 경우 상기 캐시 제어부 111는 비압축 데이터를 32byte의 크기를 가지는 2 개의 데이터로 분할하고, 32byte의 데이터(제1분할 데이터)를 메인 영역 13d_1의 저장 공간들 중 하나에 저장하고, 다른 32byte의 데이터(제2분할 데이터)를 예비 영역 13d_2의 저장 공간들 중 하나에 저장할 수 있다. 또는, 상기 메인 영역 13d_1 및 예비 영역 13d_2d의 저장 공간의 크기가 24byte 및 40byte 인 경우 상기 캐시 제어부 111는 비압축 데이터를 24byte 및 40byte의 크기를 가지는 2 개의 데이터로 분할하고, 24byte의 데이터(제1분할 데이터)를 메인 영역 13d_1의 저장 공간들 중 하나에 저장하고, 40byte의 데이터(제2분할 데이터)를 예비 영역 13d_2의 저장 공간들 중 하나에 저장 할 수 있다.
상기 캐시 제어부 111는 제2분할 데이터가 저장된 예비 영역 13d_2의 저장 공간에 대한 위치 정보를 캐시 태그 113b_1의 매핑 정보 13c_3에 저장할 수 있다.
반면에, 상기 압축 데이터의 크기가 상기 제2기준값을 초과하지 않는 경우 상기 캐시 제어부 111는 609 동작으로 진행하여 상기 압축 데이터를 메인 영역13d_1에 저장할 수 있다. 예를 들어, 상기 캐시 제어부 111는 상기 압축 데이터를 메인 영역 13d_1의 저장 공간들 중 하나에 저장할 수 있다.
도 7은 도 2b 및 도 3b의 구성을 가지는 캐시 메모리로부터 데이터를 리드하는 방법을 설명하기 위한 순서도이다.
상기 도 1 내지 도 7을 참조하면, 본 발명의 실시예에 따른 전자 장치 100의 캐시 제어부 111는 701 동작에서 제2캐시 메모리 113b에 저장된 데이터의 리드 요청을 감지할 수 있다. 상기 캐시 제어부 111는 703 동작에서 상기 리드 요청된 데이터가 압축 데이터인지 확인할 수 있다. 상기 캐시 제어부 111는 캐시 태그 113b_1의 상태 정보 13c_2를 통해 압축 데이터의 여부를 확인할 수 있다.
상기 리드 요청된 데이터가 압축 데이터가 아닌 경우 상기 캐시 제어부 111는 705 동작으로 진행하여 분할된 데이터를 결합할 수 있다. 예를 들어, 상기 캐시 제어부 111는 결합부 111d를 통해 메인 영역 13d_1 및 예비 영역 13d_2에 저장된 제1분할 데이터 및 제2분할 데이터를 결합할 수 있다. 이때, 상기 캐시 제어부 111는 캐시 태그 113b_1의 매핑 정보 13c_3를 통해 제2분할 데이터의 저장 위치를 확인할 수 있다.
반면에, 상기 리드 요청된 데이터가 압축 데이터인 경우 상기 캐시 제어부 111는 707 동작으로 진행하여, 압축 데이터를 복원할 수 있다. 예를 들어, 상기 캐시 제어부 111는 복원부 111b를 통해 압축 데이터를 복원할 수 있다.
상기 캐시 제어부 111는 709 동작에서 데이터를 리드할 수 있다. 예를 들어, 상기 캐시 제어부 111는 압축 데이터를 복원한 복원 데이터 또는 분할된 데이터를 결합한 결합 데이터를 제어부 110로 전송할 수 있다.
한편, 상기 도 7에 도시하지는 않았지만, 상기 703 동작은 상기 리드 요청된 데이터가 분할 데이터인지를 확인하는 동작으로 대체될 수 있다. 상기 캐시 제어부 111는 캐시 태그 113b_1의 매핑 정보 13c_3를 통해 분할 데이터 여부를 확인할 수 있다. 예를 들어, 상기 캐시 제어부 111는 캐시 태그 113b_1의 매핑 정보 13c_3에 데이터가 존재하는 경우 분할 데이터로 판단하고, 매핑 정보 13c_3에 데이터가 존재하지 않는 경우 분할 데이터가 아닌 것으로 판단할 수 있다. 상기 캐시 제어부 111는 분할 데이터인 경우 705 동작으로 진행하고, 분할 데이터가 아닌 경우 707 동작으로 진행할 수 있다.
도 8은 종래의 캐시 메모리에 데이터를 저장하는 일예를 도시한 도면이고, 도 9는 도 2a 및 도 3a의 구성을 가지는 캐시 메모리에 데이터를 저장하는 일예를 도시한 도면이며, 도 10은 도 2b 및 도 3b의 구성을 가지는 캐시 메모리에 데이터를 저장하는 일예를 도시한 도면이다.
상세한 설명에 앞서, 상기 도 8 내지 도 10에서 대각선 무늬는 제1기준값 또는 제2기준값 이하로 압축되지 않는 데이터를 의미하고, 그물 무늬는 제1 또는 제2기준값 이하로 압축 가능한 데이터 또는 압축된 데이터를 의미한다.
상기 도 8을 참조하면, 종래의 캐쉬 메모리는 N(N은 자연수) 개의 캐시 라인을 포함할 수 있다. 각 캐시라인은 8개의 저장 공간(Way0 내지 Way7)을 포함할 수 있다. 각 저장 공간은 데이터 저장의 기본 단위로 설정된 64 byte의 크기를 가질 수 있다. 종래의 캐시 메모리의 각 캐시 라인은 512(=64*8) byte의 크기를 가질 수 있다. 이와 같은 종래의 캐시 메모리는 모든 저장 공간들이 동일한 크기를 가진다. 또한, 종래의 캐시 메모리는 압축 가능한 데이터를 압축없이 저장한다.
상기 도 9를 참조하면, 본 발명의 다양한 실시예에 따른 상기 제1캐시 메모리 113a는 N(N은 자연수) 개의 캐시 라인 및 각 캐시 라인 당 8개의 저장 공간(Way0 내지 Way7)을 포함할 수 있다. 본 발명의 실시예에 따른 제1캐시 메모리 113a의 각 캐시 라인은 64 byte의 크기를 가지는 4개의 저장 공간(Way0 내지 Way3 : 제2영역 13b_2) 및 32byte의 크기를 가지는 4개의 저장 공간(Way4 내지 Way7 : 제1영역 13b_1)을 포함할 수 있다. 본 발명의 실시예에 따른 제1캐시 메모리 113a의 각 캐시 라인은 전체 384(=64*4 + 32*4)byte의 크기를 가질 수 있다. 이와 같이, 본 발명의 실시예에 따른 제1캐시 메모리 113a는 각 캐시 라인을 구성하는 제1영역 13 b_1의 저장 공간 수 및 제2영역 13b_2의 저장 공간 수의 합이 종래 캐시 메모리의 하나의 캐시 라인의 저장 공간 수와 동일하지만, 각 캐시 라인의 전체 크기가 종래의 캐시 메모리에 비하여 작다.
하지만, 본 발명의 실시예는 상술한 바와 같이, 도 9에 도시된 형태로 한정되지 않는다. 예를 들어, 상기 제1영역 13 b_1의 저장 공간 수 및 제2영역 13b_2의 저장 공간 수의 비율은 다양하게 변경될 수 있다. 예를 들어, 제1영역 13b_1은 3개의 저장 공간을 포함하고, 제2 영역 13b_2은 5개의 저장 공간을 포함할 수 있다. 또한, 제1영역 13b_1의 저장 공간의 크기는 다양하게 설정될 수 있다. 예를 들어, 제1영역 13b_1의 저장 공간의 크기는 주로 처리하는 데이터의 압축률에 따라 결정될 수 있다.
상기 도 9와 같은 구성을 가지는 본 발명의 실시예에 따른 제1캐시 메모리 113a는 제1기준값 이하로 압축 가능한 데이터를 압축하여 제1영역 13b_1의 저장 공간들 중 하나에 저장하고, 제1기준값 이하로 압축할 수 없는 데이터를 압축없이 제2영역 13b_2의 저장 공간들 중 하나에 저장할 수 있다. 예를 들어, "Index0"의 경우, 첫 번째 데이터는 압축없이 제1저장 공간(Way0)에 저장되고, 두 번째 데이터는 압축되어 제5저장 공간(Way 4)에 저장될 수 있다.
"Index 0"에 저장된 데이터를 상기 도 8과 비교하면, 종래의 캐시 메모리는 2 개의 데이터를 저장하기 위하여, 128(= 64 * 2)byte의 저장 공간을 사용하는데 반하여, 본 발명의 실시예에 따른 제1캐시 메모리 113a는 2 개의 데이터를 저장하기 위하여 96(= 64 + 31)byte의 저장 공간을 사용할 수 있다.
유사하게, "Index 1"의 경우 3개의 데이터를 저장하기 위하여, 종래의 캐시 메모리는 192(= 64 * 3)byte의 저장 공간을 사용하는데 반하여, 본 발명의 실시예에 따른 제1캐시 메모리 113a는 160(= 64 * 2 + 32)byte의 저장 공간을 사용한다.
또한, "Index 2"의 경우 3개의 데이터를 저장하기 위하여, 종래의 캐시 메모리는 192(= 64 * 3)byte의 저장 공간을 사용하는데 반하여, 본 발명의 실시예에 따른 제1캐시 메모리 113a는 96(= 32 * 3)byte의 저장 공간을 사용한다.
마지막으로, "Index N"의 경우 3개의 데이터를 저장하기 위하여, 종래의 캐시 메모리는 192(= 64 * 3)byte의 저장 공간을 사용하는데 반하여, 본 발명의 실시예에 따른 제1캐시 메모리 113a는 128(= 64 + 32 * 2)byte의 저장 공간을 사용한다. 이와 같이, 제1캐시 메모리 113a는 동일한 데이터를 종래의 캐시 메모리에 비하여 작은 크기의 저장 공간에 효율적으로 저장할 수 있다.
상기 도 10을 참조하면, 본 발명의 다양한 실시예에 따른 상기 제2캐시 메모리 113b는 N(N은 자연수) 개의 캐시 라인을 포함할 수 있다. 각 캐시 라인은 8개의 저장 공간(Way0 내지 Way7)을 가지는 메인 영역 13d_1 및 4개의 저장 공간(Pre-way 0 내지 Pre-way 3)을 가지는 예비 영역 13d_2를 포함할 수 있다. 상기 메인 영역 13d_1 및 예비 영역 13d_2의 각 저장 공간들은 32byte의 크기를 가질 수 있다. 본 발명의 실시예에 따른 제2캐시 메모리 113b의 각 캐시 라인은 384(= 32 * 12)byte의 크기를 가질 수 있다.
하지만, 상술한 바와 같이, 본 발명의 실시예는 이에 한정되지 않는다. 예를 들어, 상기 메인 영역 13d_1 및 예비 영역 13d_2의 각 저장 공간의 크기 및 예비 영역 13d_2의 저장 공간의 수는 설계자의 의도 또는 데이터의 속성에 따라 다양하게 변경될 수 있다.
상기 도 10과 같은 구성을 가지는 제2캐시 메모리 113b는 비압축 데이터(예컨대 제2기준값(예컨대 32byte) 이하로 압축할 수 없는 데이터)를 메인 영역 13d_1의 저장 공간들 중 하나 및 예비 영역 13d_2의 저장 공간들 중 하나에 분할하여 저장할 수 있다. 상술한 바와 같이, 상기 메인 영역 13d_1 및 예비 영역 13d_2에 분할되어 저장된 데이터들의 상호 연결 정보는 캐쉬 태그 113b_1의 매핑 정보 13c_3에 저장될 수 있다. 또한, 상기 제2캐시 메모리 113b는 압축 데이터(제2기준값 이하로 압축 가능한 데이터)를 메인 영역 13d_1 의 저장 공간들 중 하나에 저장할 수 있다.
예를 들어, "Index 0"의 경우 1개의 비압축 데이터는 메인 영역 13d_1의 제1저장 공간(Way0) 및 예비 영역 13d_2의 제1저장 공간(Pre-way0)에 분할되어 저장될 수 있다. 상기 압축 데이터는 메인 영역 13d_1의 제2저장 공간(Way 1)에 저장될 수 있다. 이러한 경우, 본 발명의 실시예에 따른 제2캐시 메모리 113b는 96(= 32 * 3)byte의 저장 공간을 사용한다.
"Index 1"의 경우, 2 개의 비압축 데이터가 메인 영역 13d_1의 제1저장 공간(Way0) 및 예비 영역 13d_2의 제1저장 공간(Pre-way0)과, 메인 영역 13d_1의 제2저장 공간(Way1) 및 예비 영역 13d_2의 제2저장 공간(Pre-way1)에 각각 분리되어 저장되고, 1개의 압축 데이터가 메인 영역 13d_1의 제3저장 공간(Way 2)에 저장될 수 있다. 이러한 경우, 본 발명의 실시 예에 따른 제2캐시 메모리 113b는 160(= 32 * 5)byte의 저장 공간을 사용한다.
"Index 2"의 경우 비압축 데이터가 존재하지 않아, 예비 영역 13d_2의 저장 공간들에 데이터가 저장되지 않고, 3개의 압축 데이터가 메인 영역 13d_1의 제1저장 공간(Way0) 내지 제3저장 공간(Way2)에 저장될 수 있다. 이러한 경우, 본 발명의 실시예에 따른 제2캐시 메모리 113b는 96(= 32 * 3)byte의 저장 공간을 사용한다.
"Index N"의 경우 1개의 비압축 데이터가 메인 영역 13d_1의 제1저장 공간(Way0) 및 예비 영역 13d_2의 제1저장 공간(Pre-way0)에 분리되어 저장되며, 2개의 압축 데이터가 메인 영역의 제2저장 공간(Way1) 및 제3저장 공간(Way2)에 저장될 수 있다. 이러한 경우, 본 발명의 실시예에 따른 제2캐시 메모리 113b는 128(= 32 * 4)byte의 저장 공간을 사용한다. 이와같이, 본 발명의 실시 예에 따른 제2캐시 메모리 113b는 도 8의 종래의 캐시 메모리에 비하여 저장 공간을 적게 사용할 수 있다.
상기 도 9 및 도 10에 도시된 본 발명의 실시예들은 도 8의 종래에 비하여 캐시 메모리 113를 효율적으로 사용할 수 있다. 상기 캐시 메모리 113를 효율적으로 사용함에 따라 본 발명의 실시예들은 종래에 비하여 상대적으로 작은 용량의 캐시 메모리를 사용하더라도 종래와 대등한 캐시 메모리의 성능을 제공할 수 있다.
한편, 상술한 본 발명의 실시예들은 캐시 메모리의 데이터의 사용 환경에 따라 적절하게 적용될 수 있다. 예들 들어, 상기 도 9의 실시예는 비압축 데이터가 저장될 수 있는 영역이 고정되어 있어, 제1캐시 메모리 113a의 운용에 제한이 생길 수 있지만, 제1캐시 메모리 113a의 구현이 용이할 수 있다.
상기 도 10의 실시예는 압축 데이터 및 비압축 데이터에 대한 저장 위치가 제한되지 않는다. 하지만, 상기 도 10의 실시예는 메인 영역 13d_1의 임의의 저장 공간에 비압축 데이터의 일부를 저장하고, 예비 영역 13d_2의 임의의 저장 공간에 비압축 데이터의 나머지 일부를 저장하며, 캐시 태그 113b_1의 매핑 정보 13c_3에 나머지 일부 데이터의 저장 위치를 기록해야 한다. 다시 말해, 제2캐시 메모리 113b는 제1캐시 메모리 113a에 비하여 상대적으로 구현이 복잡해질 수 있다.
본 발명의 다양한 실시예에 따른 장치(예: 모듈들 또는 그 기능들) 또는 방법(예: 동작들)의 적어도 일부는, 예컨대, 프로그래밍 모듈의 형태로 컴퓨터로 읽을 수 있는 저장매체(computer-readable storage media)에 저장된 명령어로 구현될 수 있다. 상기 명령어는, 하나 이상의 프로세서 (예: 제어부 110)에 의해 실행될 경우, 상기 하나 이상의 프로세서가 상기 명령어에 해당하는 기능을 수행할 수 있다. 컴퓨터로 읽을 수 있는 저장매체는, 예를 들면, 상기 저장부 120 가 될 수 있다. 상기 프로그래밍 모듈의 적어도 일부는, 예를 들면, 상기 프로세서에 의해 구현(implement)(예: 실행)될 수 있다. 상기 프로그래밍 모듈의 적어도 일부는 하나 이상의 기능을 수행하기 위한, 예를 들면, 모듈, 프로그램, 루틴, 명령어 세트 (sets of instructions) 또는 프로세스 등을 포함할 수 있다.
상기 컴퓨터로 판독 가능한 기록 매체에는 하드디스크, 플로피디스크 및 자기 테이프와 같은 마그네틱 매체(Magnetic Media)와, CD-ROM(Compact Disc Read Only Memory), DVD(Digital Versatile Disc)와 같은 광기록 매체(Optical Media)와, 플롭티컬 디스크(Floptical Disk)와 같은 자기-광 매체(Magneto-Optical Media)와, 그리고 ROM(Read Only Memory), RAM(Random Access Memory), 플래시 메모리 등과 같은 프로그램 명령(예: 프로그래밍 모듈)을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함될 수 있다. 또한, 프로그램 명령에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함할 수 있다. 상술한 하드웨어 장치는 본 발명의 다양한 실시예들의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지다.
본 발명의 다양한 실시예들에 따른 모듈 또는 프로그래밍 모듈은 전술한 구성 요소들 중 적어도 하나 이상을 포함하거나, 일부가 생략되거나, 또는 추가적인 다른 구성요소를 더 포함할 수 있다. 본 발명의 다양한 실시예들에 따른 모듈, 프로그래밍 모듈 또는 다른 구성요소에 의해 수행되는 동작들은 순차적, 병렬적, 반복적 또는 휴리스틱(heuristic)한 방법으로 실행될 수 있다. 또한, 일부 동작은 다른 순서로 실행되거나, 생략되거나, 또는 다른 동작이 추가될 수 있다.
그리고 본 명세서 및 도면에 개시된 다양한 실시예들은 이해를 돕기 위해 특정 예를 제시한 것일 뿐이며, 본 발명의 다양한 실시예들의 범위를 한정하고자 하는 것은 아니다. 따라서 본 발명의 다양한 실예들의 범위는 여기에서 설명된 실시 예들 이외에도 본 발명의 다양한 실시예들의 기술적 사상을 바탕으로 도출되는 모든 변경 또는 변형된 형태가 본 발명의 다양한 실예들의 범위에 포함되는 것으로 해석되어야 한다.
100 : 전자 장치
110 : 제어부
111 : 캐시 제어부
111a : 압축부
111b : 복원부
111c : 분할부
111d : 결합부
113 : 캐시 메모리
113a : 제1캐시 메모리
113b : 제2캐시 메모리
113a_1, 113b_1 : 캐시 태그
113a_2, 113b_2 : 캐시 데이터
13b_1 : 제1영역
13b_2 : 제2영역
13d_1 : 메인 영역
13d_2 : 예비 영역
120 : 저장부
130 : 터치스크린
131 : 표시부
133 : 터치 감지부

Claims (20)

  1. 전자 장치에 있어서,
    제1크기의 적어도 하나의 저장 공간을 가지는 제1영역 및 제2크기의 적어도 하나의 저장 공간을 가지는 제2영역을 포함하는 다수의 캐시라인을 포함하는 캐시 메모리; 및
    상기 캐시 메모리로의 데이터 저장 요청 시 상기 저장 요청된 데이터의 압축 가능한 크기에 따라 상기 저장 요청된 데이터를 상기 제1영역 또는 상기 제2영역의 저장 공간들 중 하나에 저장하는 캐시 제어부를 포함하고,
    상기 캐시 제어부는
    상기 압축 가능한 크기가 상기 제1크기 이하인 경우 상기 저장 요청된 데이터를 압축하여 상기 제1영역의 저장 공간들 중 하나에 저장하며, 상기 제1크기를 초과하는 경우 상기 저장 요청된 데이터를 압축없이 상기 제2영역의 저장 공간들 중 하나에 저장하는 전자 장치.
  2. 삭제
  3. 제1항에 있어서,
    상기 제2크기는 상기 캐시 메모리에 데이터 저장을 위한 기본 크기이며,
    상기 제1 크기는 상기 제2크기의 1/2인 전자 장치.
  4. 제1항에 있어서,
    상기 제1크기는
    데이터의 속성에 따라 결정되는 전자 장치.
  5. 제1항에 있어서,
    상기 제1영역의 저장 공간의 수 및 상기 제2영역의 저장 공간의 수는
    데이터의 속성에 따라 결정되는 전자 장치.
  6. 제1항에 있어서,
    상기 캐시 제어부는
    상기 저장 요청된 데이터 중 압축 가능한 데이터를 압축하는 압축부; 및
    데이터의 리드 요청 시 압축되어 저장된 데이터를 원래의 데이터로 복원하는 복원부를 포함하는 전자 장치.
  7. 전자 장치에 있어서,
    다수의 캐시 라인을 포함하며, 각 캐시 라인이 데이터 저장을 위한 기본 크기보다 작은 크기의 적어도 하나의 저장 공간을 가지는 메인 영역 및 예비 영역을 포함하는 캐시 메모리; 및
    상기 캐시 메모리로의 데이터 저장 요청 시 상기 저장 요청된 데이터를 압축하고, 상기 압축된 데이터의 크기가 상기 메인 영역의 하나의 저장 공간의 크기 이하인지 확인하며, 상기 메인 영역의 하나의 저장 공간의 크기 이하인 경우 상기 저장 요청된 데이터를 압축하여 상기 메인 영역의 저장 공간들 중 하나에 저장하는 캐시 제어부를 포함하고,
    상기 캐시 제어부는
    상기 압축된 데이터의 크기가 상기 메인 영역의 하나의 저장 공간의 크기를 초과하는 경우 상기 저장 요청된 데이터를 압축하지 않고, 상기 메인 영역의 저장 공간들 중 하나 및 상기 예비 영역의 저장 공간들 중 하나에 분할하여 저장하는 전자 장치.
  8. 삭제
  9. 제7항에 있어서,
    상기 캐시 메모리는
    상기 저장 요청된 데이터를 저장하며, 상기 메인 영역 및 상기 예비 영역을 포함하는 캐시 데이터; 및
    상기 캐시 데이터에 저장된 데이터의 주소 정보, 상태 정보 및 상기 메인 영역 및 상기 예비 영역에 분할되어 저장된 데이터들의 매핑 정보를 포함하는 캐시 태그를 포함하는 전자 장치.
  10. 제7항에 있어서,
    상기 메인 영역의 하나의 저장 공간의 크기 및 상기 예비 영역의 하나의 저장 공간의 크기의 합은 상기 기본 크기인 전자 장치.
  11. 제10항에 있어서,
    상기 메인 영역의 하나의 저장 공간의 크기 및 상기 예비 영역의 하나의 저장 공간의 크기가 동일한 전자 장치.
  12. 제9항에 있어서,
    상기 캐시 제어부는
    상기 저장 요청된 데이터 중 압축 가능한 데이터를 압축하는 압축부;
    데이터의 리드 요청 시 압축되어 저장된 데이터를 원래의 데이터로 복원하는 복원부;
    상기 메인 영역의 하나의 저장 공간의 크기 이하로 압축되지 않는 데이터를 분할하는 분할부; 및
    상기 캐시 메모리에 저장된 데이터의 리드 요청 시 분할되어 저장된 데이터를 결합하는 결합부를 포함하는 전자 장치.
  13. 제12항에 있어서,
    상기 결합부는
    상기 분할되어 저장된 데이터의 결합 시 상기 매핑 정보를 통해 상기 메인 영역에 저장된 데이터와 결합될 데이터의 상기 예비 영역에서의 저장 위치를 확인하는 전자 장치.
  14. 제1크기의 적어도 하나의 저장 공간을 가지는 제1영역 및 제2크기의 적어도 하나의 저장 공간을 가지는 제2영역을 포함하는 다수의 캐시라인을 포함하는 캐시 메모리의 운용 방법에 있어서,
    상기 캐시 메모리로의 데이터 저장 요청을 감지하는 동작;
    상기 저장 요청된 데이터의 압축 가능한 크기에 따라 상기 저장 요청된 데이터를 상기 제1영역의 저장 공간들 중 하나 또는 상기 제2영역의 저장 공간들 중 하나에 저장하기 위해 상기 저장 요청된 데이터를 압축하는 동작;
    상기 압축된 데이터의 크기가 상기 제1크기 이하인지 확인하는 동작;
    상기 압축된 데이터의 크기가 상기 제1크기 이하인 경우 상기 압축된 데이터를 상기 제1영역의 저장 공간들 중 하나에 저장하는 동작; 및
    상기 압축된 데이터의 크기가 상기 제1크기를 초과하는 경우 상기 저장 요청된 데이터를 압축없이 상기 제2영역의 저장 공간들 중 하나에 저장하는 동작을 포함하는 캐시 메모리 운용 방법.
  15. 삭제
  16. 제14항에 있어서,
    상기 캐시 메모리에 저장된 데이터의 리드 요청을 감지하는 동작;
    상기 리드 요청된 데이터가 상기 제1영역에 위치하는 경우 압축되어 저장된 데이터를 복원하고, 상기 복원된 데이터를 리드하는 동작; 및
    상기 리드 요청된 데이터가 상기 제2영역에 위치하는 경우 상기 제2영역에 저장된 데이터를 바로 리드하는 동작을 포함하는 캐시 메모리 운용 방법.
  17. 다수의 캐시 라인을 포함하며, 각 캐시 라인이 데이터 저장을 위한 기본 크기보다 작은 크기의 적어도 하나의 저장 공간을 가지는 메인 영역 및 예비 영역을 포함하는 캐시 메모리의 운용 방법에 있어서,
    상기 캐시 메모리로의 데이터 저장 요청을 감지하는 동작;
    상기 저장 요청된 데이터를 압축하는 동작;
    상기 압축된 데이터의 크기가 상기 메인 영역의 하나의 저장 공간의 크기 이하인지 확인하는 동작;
    상기 압축된 데이터의 크기가 상기 메인 영역의 하나의 저장 공간의 크기 이하인 경우 상기 압축된 데이터를 상기 메인 영역의 저장 공간들 중 하나에 저장하는 동작; 및
    상기 압축된 데이터의 크기가 상기 메인 영역의 하나의 저장 공간의 크기를 초과하는 경우 상기 저장 요청된 데이터를 압축없이 상기 메인 영역의 저장 공간들 중 하나 및 상기 예비 영역의 저장 공간들 중 하나에 분할하여 저장하는 동작을 포함하는 캐시 메모리 운용 방법.
  18. 삭제
  19. 제17항에 있어서,
    상기 캐시 메모리에 저장된 데이터의 리드 요청을 감지하는 동작;
    상기 리드 요청된 데이터가 압축 데이터인지 확인하는 동작;
    상기 리드 요청된 데이터가 상기 압축 데이터가 아닌 경우 상기 메인 영역 및 상기 예비 영역에 분할되어 저장된 데이터를 결합하고, 상기 결합된 데이터를 리드하는 동작; 및
    상기 리드 요청된 데이터가 상기 압축 데이터인 경우 상기 메인 영역에 저장된 압축 데이터를 복원하고, 상기 복원된 데이터를 리드하는 동작을 포함하는 캐시 메모리 운용 방법.
  20. 제19항에 있어서,
    상기 메인 영역 및 상기 예비 영역에 분할되어 저장된 데이터를 결합하는 동작은
    상기 메인 영역에 저장된 데이터와 결합될 데이터의 저장 위치를 캐시 태그의 매핑 정보를 통해 확인하는 동작을 포함하는 캐시 메모리 운용 방법.
KR1020140084516A 2014-07-07 2014-07-07 캐시 메모리를 가지는 전자 장치 및 그의 운용 방법 KR102336528B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020140084516A KR102336528B1 (ko) 2014-07-07 2014-07-07 캐시 메모리를 가지는 전자 장치 및 그의 운용 방법
US14/792,869 US9684604B2 (en) 2014-07-07 2015-07-07 Electronic device with cache memory and method of operating the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140084516A KR102336528B1 (ko) 2014-07-07 2014-07-07 캐시 메모리를 가지는 전자 장치 및 그의 운용 방법

Publications (2)

Publication Number Publication Date
KR20160007874A KR20160007874A (ko) 2016-01-21
KR102336528B1 true KR102336528B1 (ko) 2021-12-07

Family

ID=55017098

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140084516A KR102336528B1 (ko) 2014-07-07 2014-07-07 캐시 메모리를 가지는 전자 장치 및 그의 운용 방법

Country Status (2)

Country Link
US (1) US9684604B2 (ko)
KR (1) KR102336528B1 (ko)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9652384B2 (en) * 2014-12-16 2017-05-16 Intel Corporation Apparatus, system and method for caching compressed data
US9852247B2 (en) * 2015-05-15 2017-12-26 Lattice Semiconductor Corporation Area-efficient memory mapping techniques for programmable logic devices
KR102386476B1 (ko) * 2015-10-28 2022-04-15 에스케이하이닉스 주식회사 반도체 장치 및 그의 구동 방법
US10168939B2 (en) * 2015-11-24 2019-01-01 International Business Machines Corporation Reading records from a tape medium
KR101809044B1 (ko) 2016-04-26 2017-12-14 주식회사 아이디스 프리-이벤트 순환 저장 방식 영상녹화장치
US9996471B2 (en) * 2016-06-28 2018-06-12 Arm Limited Cache with compressed data and tag
US10289315B2 (en) * 2017-03-27 2019-05-14 Western Digital Technologies, Inc. Managing I/O operations of large data objects in a cache memory device by dividing into chunks
CN110148461B (zh) * 2019-06-26 2021-09-21 周建勋 用于多参数测量的模块切换系统
CN112925809A (zh) * 2021-02-24 2021-06-08 浙江大华技术股份有限公司 数据的存储方法、装置和系统
US20230236725A1 (en) * 2022-01-25 2023-07-27 Dell Products L.P. Method to opportunistically reduce the number of SSD IOs, and reduce the encryption payload, in an SSD based cache in a deduplication file system

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010001872A1 (en) * 1998-06-10 2001-05-24 International Business Machines Corp. Data caching with a partially compressed cache

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7143238B2 (en) 2003-09-30 2006-11-28 Intel Corporation Mechanism to compress data in a cache
US7412564B2 (en) 2004-11-05 2008-08-12 Wisconsin Alumni Research Foundation Adaptive cache compression system

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010001872A1 (en) * 1998-06-10 2001-05-24 International Business Machines Corp. Data caching with a partially compressed cache

Also Published As

Publication number Publication date
US9684604B2 (en) 2017-06-20
US20160004636A1 (en) 2016-01-07
KR20160007874A (ko) 2016-01-21

Similar Documents

Publication Publication Date Title
KR102336528B1 (ko) 캐시 메모리를 가지는 전자 장치 및 그의 운용 방법
US20190243516A1 (en) Method and apparatus for changing screen in electronic device
US10135898B2 (en) Method, terminal, and system for reproducing content
TWI698747B (zh) 共享虛擬記憶體的技術(四)
CN107925749B (zh) 用于调整电子设备的分辨率的方法和设备
KR102219861B1 (ko) 화면 공유 방법 및 그 전자 장치
KR102044826B1 (ko) 마우스 기능 제공 방법 및 이를 구현하는 단말
KR102176645B1 (ko) 어플리케이션 운용 방법 및 이를 이용한 전자 장치
US9626313B2 (en) Trace buffer based replay for context switching
US9478000B2 (en) Sharing non-page aligned memory
US9871710B2 (en) Electronic device for operating application
CN111209116B (zh) 一种分配显存空间的方法、装置及计算机存储介质
TWI546665B (zh) 用於圖形處理單元的記憶體映射技術
US10204598B2 (en) Predictive pre-decoding of encoded media item
US20190087024A1 (en) Electronic device for storing user data, and method therefor
JP6386099B2 (ja) 圧縮支援のための方法、装置、コンピュータプログラム及び記憶媒体
CN114579055B (zh) 磁盘存储方法、装置、设备及介质
US9471323B2 (en) System and method of using an atomic data buffer to bypass a memory location
CN109857573B (zh) 一种数据共享方法、装置、设备及系统
CN104054049A (zh) 减少由cpu执行以便复制源数据从而实现对源数据的并行处理的读/写操作的数量
US20120124429A1 (en) Apparatus and method for tracing memory access information
KR20150141073A (ko) 데이터 처리 방법 및 전자 장치
US20170076427A1 (en) Methods and devices for outputting a zoom sequence
US20140365969A1 (en) Method and apparatus for providing a user interface of electronic device
US8276041B2 (en) Data integrity validation using hierarchical volume management

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant