KR20120088370A - 멀티 프로세서 시스템에서의 메모리 보호 장치 및 방법 - Google Patents

멀티 프로세서 시스템에서의 메모리 보호 장치 및 방법 Download PDF

Info

Publication number
KR20120088370A
KR20120088370A KR20110009676A KR20110009676A KR20120088370A KR 20120088370 A KR20120088370 A KR 20120088370A KR 20110009676 A KR20110009676 A KR 20110009676A KR 20110009676 A KR20110009676 A KR 20110009676A KR 20120088370 A KR20120088370 A KR 20120088370A
Authority
KR
South Korea
Prior art keywords
memory
segment
address
sub
cpu
Prior art date
Application number
KR20110009676A
Other languages
English (en)
Other versions
KR101724590B1 (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 KR1020110009676A priority Critical patent/KR101724590B1/ko
Priority to US13/353,784 priority patent/US9135187B2/en
Publication of KR20120088370A publication Critical patent/KR20120088370A/ko
Application granted granted Critical
Publication of KR101724590B1 publication Critical patent/KR101724590B1/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/1425Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
    • G06F12/1441Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block for a range
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/167Interprocessor communication using a common memory, e.g. mailbox
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors

Abstract

멀티 프로세서 시스템에서의 메모리 보호 장치 및 방법이 개시된다. 본 발명의 실시예들은, 세그먼트 및 서브 세그먼트를 이용하여 작은 단위의 메모리 매핑을 기술함으로써, 적은 하드웨어 크기만으로 메모리 접근을 제어할 수 있고, 하드웨어로 인한 비용 손실을 줄일 수 있으며, 멀티 프로세서 시스템에서 태스크(Task) 오류에 의해 메모리가 파괴되는 것을 방지할 수 있다.

Description

멀티 프로세서 시스템에서의 메모리 보호 장치 및 방법{Apparatus and Method for Protecting Memory in a Multi Processor System}
본 발명의 실시예들은 멀티 프로세서 시스템에서의 메모리 보호 장치 및 방법에 관한 것으로서, 보다 구체적으로는 멀티 프로세서 시스템에서 공유 메모리에 대한 각 프로세서의 메모리 접근을 제한하는 메모리 보호 장치 및 방법에 관한 것이다.
기존의 메모리 보호 기술은 크게 메모리 관리기(Memory Management Unit, MMU)를 이용한 페이지 기반 방법과 세그먼트 기반 기법으로 구분된다. MMU 기반 기법에서는 메모리를 일정 크기의 페이지로 나누어 관리한다. 또한, MMU는 페이지 테이블(Page Table)에 논리 주소(Logical Address)와 물리 주소(Physical Address)의 매핑을 기술하고, 이를 기반으로 주소 변환을 수행한다. 주소 변환 과정에서 매핑되지 않거나 접근 권한을 어길 경우, CPU에 이를 알려준다. 페이지 테이블은 메모리에 위치하는데 이를 기반으로 주소 변환을 수행할 경우 한 번의 메모리 접근을 위해 여러 번의 메모리 접근이 필요하게 된다. MMU에서는 이러한 주소 변환 과정을 빠르게 수행하기 위해서 TLB(Translation Lookaside Buffer)라 불리는 페이지 테이블에 대한 캐시(cache)를 유지한다. TLB는 DRAM과는 달리 빠른 접근이 가능하므로 주소 변환에 따르는 수행 오버헤드를 줄일 수 있다.
그러나 MMU에 의한 방법은 임베디드 멀티 프로세서 시스템에는 적합하지 않다. 우선 MMU와 TLB를 위해 복잡한 하드웨어 로직이 필요하다. 또한 페이지 테이블을 유지하기 위해 별도의 메모리가 필요하다. 임베디드 멀티 프로세서 시스템에서는 각 CPU가 빠른 로컬 메모리를 별도로 가지고 있지만 크기가 작기 때문에 페이지 테이블을 유지하기 어렵고, 공유된 DRAM에 페이지 테이블을 두게 되면 TLB와 같은 별도의 하드웨어가 있지 않으면 성능을 내기 어렵다. 멀티코어에서는 코어마다 이러한 하드웨어가 구현되어야 하므로 코어 개수가 많아지면 이를 위한 오버헤드가 커진다.
본 발명의 실시예들은 세그먼트 및 서브 세그먼트를 이용하여 작은 단위의 메모리 매핑을 기술함으로써, 적은 하드웨어 크기만으로 메모리 접근을 제어하고, 하드웨어로 인한 비용 손실을 줄이며, 멀티 프로세서 시스템에서 태스크(Task) 오류에 의해 메모리가 파괴되는 것을 방지하는데 그 목적이 있다.
본 발명의 일실시예에 따른 메모리 보호 방법은, CPU로부터 메모리에 대한 메모리 접근이 발생하는 경우, 상기 메모리 접근에 대응하는 메모리 주소로부터 세그먼트 주소 및 서브 세그먼트 주소를 추출하는 단계; 세그먼트 레지스터에 포함되어 있는 세그먼트 베이스 주소와 상기 세그먼트 주소를 비교하고, 상기 세그먼트 베이스 주소와 상기 세그먼트 주소가 일치하지 않는 경우, 상기 CPU로 상기 메모리에 대한 접근 불가를 나타내는 예외 신호(Exception Signal)를 전송하는 단계; 및 상기 서브 세그먼트 주소가 서브 세그먼트 레지스터에 포함되어 있는지 여부를 판단하고, 상기 서브 세그먼트 주소가 상기 서브 세그먼트 레지스터에 포함되어 있지 않은 경우, 상기 CPU로 상기 예외 신호를 전송하는 단계를 포함한다.
본 발명의 일실시예에 따른 메모리 보호 장치는, 복수 개의 서브 세그먼트 주소를 포함하는 서브 세그먼트 레지스터; 세그먼트 베이스 주소를 포함하는 세그먼트 레지스터; 및 CPU로부터 메모리에 대한 메모리 접근이 발생하는 경우, 상기 세그먼트 레지스터 및 상기 서브 세그먼트 레지스터에 기반하여, 상기 메모리 접근에 대한 허용 여부를 판단하고, 상기 메모리 접근이 허용되지 않는 경우, 상기 CPU로 상기 메모리에 대한 접근 불가를 나타내는 예외 신호를 전송하는 메모리 보호부를 포함한다.
세그먼트 및 서브 세그먼트를 이용하여 작은 단위의 메모리 매핑을 기술함으로써, 적은 하드웨어 크기만으로 메모리 접근을 제어할 수 있고, 하드웨어로 인한 비용 손실을 줄일 수 있으며, 멀티 프로세서 시스템에서 태스크(Task) 오류에 의해 메모리가 파괴되는 것을 방지할 수 있다.
도 1은 본 발명의 일실시예에 따른 멀티 프로세서 시스템의 구조를 나타내는 도면이다.
도 2는 본 발명의 일실시예에 따른 메모리 보호 장치의 구성을 나타내는 도면이다.
도 3은 본 발명의 일실시예에 따른 세그먼트 및 서브 세그먼트를 이용하는 멀티 프로세서 시스템에서의 매핑 관계를 나타내는 도면이다.
도 4는 본 발명의 일실시예에 따른 세그먼트 레지스터 및 서브 세그먼트 레지스터의 구조를 나타내는 도면이다.
도 5는 본 발명의 일실시예에 따른 세그먼트 레지스터의 인코딩을 나타내는 도면이다.
도 6은 본 발명의 일실시예에 따른 메모리 보호 방법을 나타내는 흐름도이다.
이하에서, 본 발명에 따른 실시예를 첨부된 도면을 참조하여 상세하게 설명한다. 그러나, 본 발명이 실시예들에 의해 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.
도 1은 본 발명의 일실시예에 따른 멀티 프로세서 시스템의 구조를 나타내는 도면이다.
도 1을 참조하면, 본 발명의 일실시예에 따른 멀티 프로세서 시스템에 있어서, 복수 개의 CPU(111, 112, 113)는 버스(Bus)(140)를 통해서 데이터를 전송 및 수신할 수 있다. 이 때, 복수 개의 CPU(111, 112, 113)는 공유 메모리(Shared Memory)(140)를 공유할 수 있다.
일실시예에 따른 공유 메모리(140)는 DRAM일 수 있다. DRAM은 큰 용량을 가질 수 있지만, 동작 속도가 상대적으로 느리고 복수 개의 CPU(111, 112, 113)는 버스(130)를 통해 DRAM으로 접근하기 때문에, 복수 개의 CPU(111, 112, 113)가 동시에 DRAM에 접근할 경우 충돌이 발생할 수 있다.
따라서, 빠른 메모리 접근을 위해 복수 개의 CPU(111, 112, 113) 각각은 스크래치 패드 메모리(Scratch Pad Memory, SPM)를 로컬 메모리(Local Memory)(121, 122, 123)로 유지할 수 있다.
통상적인 멀티 프로세스 시스템에서는 로컬 캐시(Local Cache)를 통하여 DRAM에 대한 접근 회수를 줄인다. 그러나, 로컬 캐시에 비해, 스크래치 패드 메모리는 응용 프로그램에 의해 메모리 내용을 제어할 수 있기 때문에 응용 프로그램에 맞게 메모리 내용을 유지할 수 있다.
그러나, 스크래치 패드 메모리는 수백 KB로서, 그 크기가 작다. 따라서 스크래치 패드 메모리에 필요한 데이터를 효과적으로 로드(Load)하는 것이 멀티 프로세서 시스템의 성능에 큰 영향을 미칠 수 있다.
이하, 본 발명의 일실시예에 따른 메모리 보호 장치 및 방법이 공유 메모리(140)에 대한 복수 개의 CPU(111, 112, 113)의 메모리 접근을 제한하는 동작에 대해서 상세히 설명한다.
도 2는 본 발명의 일실시예에 따른 메모리 보호 장치의 구성을 나타내는 도면이다.
도 2를 참조하면, 본 발명의 일실시예에 따른 메모리 보호 장치(200)는 서브 세그먼트 레지스터(Sub-Segment Register)(210), 세그먼트 레지스터(Segment Register)(220) 및 메모리 보호부(Memory Protection Unit)(230)을 포함한다.
서브 세그먼트 레지스터(210)는 복수 개의 서브 세그먼트 주소를 포함한다.
세그먼트 레지스터(220)는 세그먼트 베이스 주소(Segment Base Address)를 포함한다.
본 발명의 일측에 따르면, 메모리 보호 장치(200)는 세그먼트에 기반하여, 메모리(203)에 대한 전체 영역을 설정할 수 있다. 자세히 설명하면, 메모리 보호 장치(200)는 메모리(203)에 대한 전체 영역의 경계(Boundary) 및 CPU(201)의 메모리(203)에 대한 접근 권한을 세그먼트 레지스터(220)에 설정할 수 있다.
본 발명의 일측에 따르면, 메모리 보호 장치(200)는 서브 세그먼트에 기반하여, 메모리(203)에 대한 세부 영역을 설정할 수 있다. 자세히 설명하면, 메모리 보호 장치(200)는 하나의 세그먼트에 대응하는 메모리 영역을 동일한 크기를 갖는 복수 개의 서브 세그먼트로 분할할 수 있다. 이 때, 메모리 보호 장치(200)는 서브 세그먼트가 매핑 영역인지 여부를 나타내는 정보를 세그먼트에 비트맵 형태로 표시할 수 있다.
메모리 보호부(230)는 버스(202)를 모니터링(Monitoring)하여, CPU(201)로부터 메모리(203)에 대한 메모리 접근이 발생하는지 여부를 판단할 수 있다.
CPU(201)로부터 메모리(203)에 대한 메모리 접근이 발생하는 경우, 메모리 보호부(230)는 CPU(201)의 메모리(203)에 대한 접근 권한이 있는지 여부를 판단하고, 매핑(Mapping)되지 않은 메모리 영역 또는 접근 권한이 없는 메모리 영역에 대한 메모리 접근인 경우, CPU(201)에 접근 불가를 나타내는 예외 신호(Exception Signal)을 전송할 수 있다.
일실시예에 따른 메모리 보호부(230)는, CPU(201)로부터 메모리(203)에 대한 메모리 접근이 발생하는 경우, 세그먼트 레지스터(220) 및 서브 세그먼트 레지스터(210)에 기반하여, 메모리 접근에 대한 허용 여부를 판단할 수 있다. 자세히 설명하면, 메모리 보호부(230)는 세그먼트 레지스터(220) 및 서브 세그먼트 레지스터(210)에 포함되어 있는 메모리 영역에 대한 정보를 이용하여 메모리 접근에 대한 허용 여부를 판단할 수 있다.
메모리 접근이 허용되지 않는 경우, 메모리 보호부(230)는 CPU(201)로 메모리(203)에 대한 접근 불가를 나타내는 예외 신호(Exception Signal)을 전송할 수 있다.
본 발명의 일측에 따르면, 메모리 보호부(230)는 CPU(201)의 메모리 접근에 대응하는 메모리 주소로부터 세그먼트 주소를 추출할 수 있다.
또한, 메모리 보호부(230)는 세그먼트 레지스터(220)에 포함되어 있는 세그먼트 베이스 주소와 추출한 세그먼트 주소를 비교할 수 있다.
세그먼트 베이스 주소와 추출한 세그먼트 주소가 일치하지 않는 경우, 메모리 보호부(230)는 CPU(201)로 예외 신호를 전송할 수 있다.
본 발명의 일측에 따르면, 메모리 보호부(230)는 메모리 접근에 대응하는 메모리 주소로부터 메모리 접근에 대응하는 서브 세그먼트 주소를 추출할 수 있다.
또한, 메모리 보호부(230)는 추출된 서브 세그먼트 주소가 서브 세그먼트 레지스터에 포함되어 있는지 여부를 판단할 수 있다.
추출된 서브 세그먼트 주소가 서브 세그먼트 레지스터에 포함되어 있지 않은 경우, 메모리 보호부(230)는 CPU(201)로 예외 신호를 전송할 수 있다.
추출된 서브 세그먼트 주소가 서브 세그먼트 레지스터에 포함되어 있는 경우, 메모리 보호부(230)는 세그먼트 레지스터에 포함되어 있는 맵 비트(Map Bit)에 기반하여 추출된 서브 세그먼트 주소가 매핑 되어 있는지 여부를 판단할 수 있다. 추출된 서브 세그먼트 주소가 매핑 되어 있지 않은 경우, 메모리 보호부(230)는 CPU(201)로 예외 신호를 전송할 수 있다.
본 발명의 일측에 따르면, 메모리 보호부(230)는 세그먼트 레지스터에 포함되어 있는 프로텍션 비트(Protection Bit)에 기반하여, 메모리 접근에 대한 허용 여부를 판단할 수 있다.
일실시예에 따른 프로텍션 비트는 CPU(201)의 메모리(203)에 대한 접근 권한 정보를 포함할 수 있다.
메모리(203)에 대한 접근 권한은 CPU(201)가 수행 중인 CPU 모드(Mode)에 따라 달리 설정될 수 있다. 일실시예에 따른 CPU 모드는 사용자 모드(User Mode) 및 관리자 모드(Supervisor Mode)를 포함할 수 있다.
표 1은 CPU에 따른 메모리에 대한 접근 권한 및 접근 권한에 대한 프로텍션 비트의 일실시예를 나타내는 표이다.
표 1
Figure pat00001
CPU(201)의 메모리(203)에 대한 메모리 접근이 허용되지 않는 경우, 메모리 보호부(230)는 CPU(201)로 예외 신호를 전송할 수 있다.
본 발명의 일측에 따르면, 세그먼트 레지스터(220) 및 서브 세그먼트 레지스터(210)의 개수는 메모리 보호 장치(200)에 따라 다르게 설정될 수 있다.
도 3은 본 발명의 일실시예에 따른 세그먼트 및 서브 세그먼트를 이용하는 멀티 프로세서 시스템에서의 매핑 관계를 나타내는 도면이다.
도 3을 참조하면, 종래의 세그먼트만을 사용하는 멀티 프로세서 시스템에서의 매핑 관계(310)에 나타난 것과 같이, 메모리가 불연속적으로 매핑된 경우, 각각의 영역에 대해 세그먼트 레지스터를 할당해야 하므로, 복수 개의 세그먼트 레지스터(311, 312, 313, 314)가 요구된다(즉, 4개의 세그먼트 레지스터(311, 312, 313, 314)가 사용됨).
그러나, 본 발명의 일실시예에 따른 세그먼트 및 서브 세그먼트를 이용하는 멀티 프로세서 시스템에서의 매핑 관계(320)에 나타난 것과 같이, 서브 세그먼트를 이용하는 경우, 세그먼트 영역 내에서 비트맵에 의해 서브 세그먼트의 매핑 여부(322)만을 표시해 주면 되기 때문에, 사용되는 세그먼트 레지스터의 개수를 줄일 수 있다(즉, 하나의 세그먼트(321)만이 사용됨).
특히, 멀티 프로세서 시스템에서 스크래치 패드 메모리와 같이 일정한 크기의 주소로 매핑되는 경우, 서브 세그먼트를 통하여 다른 스크래치 패드 메모리의 접근 권한을 매핑시킬 수 있고, DRAM에 대한 메모리 영역의 경우에도 메모리 할당기와 연동하여 서브 세그먼트 단위로 메모리 접근을 효과적으로 제어할 수 있다.
도 4는 본 발명의 일실시예에 따른 세그먼트 레지스터 및 서브 세그먼트 레지스터의 구조를 나타내는 도면이다.
도 4를 참조하면, 본 발명의 일실시예에 따른 메모리 주소(410)는 세그먼트 주소(411) 및 서브 세그먼트 주소(412)를 포함할 수 있다.
또한, 세그먼트 레지스터(420)는 세그먼트 베이스 주소(Segment Base Address)(421)를 포함할 수 있다. 실시예에 따라서는, 세그먼트 레지스터(420)는 세그먼트 사이즈(422), 프로텍션 비트(423) 및 매핑 여부를 나타내는 비트맵(424)를 더 포함할 수 있다.
일실시예에 따른 메모리 보호 장치는 메모리 주소(410)로부터 세그먼트 주소(411)를 추출할 수 있고, 추출된 세그먼트 주소(411)와 세그먼트 베이스 주소(421)를 비교할 수 있다. 자세히 설명하면, 일실시예에 따른 메모리 보호 장치는 세그먼트 주소(411)와 세그먼트 베이스 주소(421)를 비교함으로써, CPU의 메모리 접근이 세그먼트 레지스터(420)에 대응하는 메모리 영역에 대한 접근인지 여부를 판단할 수 있다.
일실시예에 따른 서브 세그먼트 레지스터(430)는 세그먼트의 크기를 16등분할 주소를 표시할 수 있다. 만약, 세그먼트의 크기가 1Mbyte인 경우, 서브 세그먼트의 크기는 1024 / 16 = 64Kbyte가 될 수 있고, 따라서, 세그먼트 레지스터(420)의 메모리 주소에서 16~19번째 비트가 서브 세그먼트의 주소를 나타낼 수 있다.
실시예에 따라서는, 서브 세그먼트의 메모리 주소는 각각 4비트로 구성될 수 있다. 세그먼트 내에 서브 세그먼트는 총 16개이므로, 서브 세그먼트 의 매핑관계를 표시하려면 4 x 16 = 64 bit = 8 byte의 공간이 필요할 수 있다.
한편, 서브 세그먼트는 매핑된 경우 및 매핑되지 않은 경우 중 어느 하에 해당하므로, 두 가지의 경우 중 하나의 경우에 포함되는 서브 세그먼트는 8개 이하가 될 수 있다. 따라서, M 비트로 서브 세그먼트가 매핑 영역을 나타내는지(예를 들어, M=1로 표시 가능), 또는 서브 세그먼트가 매핑되지 않은 영역을 나타내는 지(예를 들어, M=0으로 표시 가능)를 표시할 수 있다. 이 때, 서브 세그먼트 레지스터(430에 해당하는 서브 세그먼트의 주소를 나타내면 총 32비트로 전체 서브 세그먼트를 나타낼 수 있다.
일실시예에 따른 메모리 보호 장치는, 메모리 주소(410)의 서브 세그먼트 주소(412)와 서브 세그먼트 레지스터(430)에 포함되어 있는 8개의 서브 세그먼트 주소와 비교하여, 서브 세그먼트 주소(412)가 매핑된 주소인지 여부를 판단할 수 있다.
따라서, 일실시예에 따른 메모리 보호 장치는 메모리 주소(410)의 세그먼트 주소(411)와 세그먼트 레지스터(420)의 세그먼트 베이스 주소(421)를 비교하고, 메모리 주소(410)의 서브 세그먼트 주소(412)와 서브 세그먼트 레지스터(430)에 포함되어 있는 복수 개의 서브 세그먼트 주소를 비교함으로써, 메모리 주소(410)가 메모리에 대해서 접근 가능한 주소인지 여부를 판단할 수 있다.
표 2
Figure pat00002
예를 들면, 세그먼트 베이스 주소(421), 세그먼트 크기(422), 서브 세그먼트 주소의 매핑 여부를 나타내는 비트맵(424) 및 서브 세그먼트 레지스터(430)에 포함되어 있는 서브 세그먼트 주소가 표 2와 같은 경우, 메모리 주소(410)가 1111 1111 1001 0010 1111 1010 1100 0000와 같다면, 메모리 주소(410)는 세그먼트에 의해 매핑된 주소를 나타낼 수 있다. 즉, 메모리 주소(410)의 세그먼트 주소(411)는 1111 1111 1001이기 때문에 세그먼트 베이즈 주소(421)의 앞부분과 동일하고, 서브 세그먼트 주소(412)는 0010로서 서브 세그먼트 레지스터(430)에 포함되어 있으며, 서브 세그먼트가 매핑 관계(M=1)를 나타내기 때문에, 메모리 주소(410)는 세그먼트에 의해 매핑된 주소를 나타낼 수 있다.
도 5는 본 발명의 일실시예에 따른 세그먼트 레지스터의 인코딩을 나타내는 도면이다.
도 5를 참조하면, 본 발명의 일실시예에 따른 세그먼트 레지스터(500)는 세그먼트 베이스 주소(510)를 포함할 수 있다.
또한, 일실시예에 따른 세그먼트 레지스터(500)는 세그먼트 크기(520), 프로텍션 비트(530) 및 매핑 여부를 나타내는 비트맵(540)을 더 포함할 수 있다.
본 발명의 일측에 따르면, 세그먼트 크기(520)는 크기값(521) 및 스케일값(522)을 포함할 수 있다. 실시예에 따라서는, 세그먼트의 크기를 M x 2^scale 값으로 계산할 수 있고, 이 경우, 세그먼트의 크기를 0 내지 4G 범위 내에서 설정할 수 있다.
프로텍션 비트(530)는 CPU의 메모리에 대한 접근 권한에 대한 정보를 저장할 수 있다.
매핑 여부를 나타내는 비트맵(540)은 서브 세그먼트가 매핑된 주소인지 여부를 나타내는 정보를 저장할 수 있다.
도 6은 본 발명의 일실시예에 따른 메모리 보호 방법을 나타내는 흐름도이다.
도 6을 참조하면, 본 발명의 일실시예에 따른 메모리 보호 방법은 버스를 모니터링(Monitoring)하여, CPU로부터 메모리에 대한 메모리 접근이 발생하는지 여부를 판단할 수 있다(610).
CPU로부터 메모리에 대한 메모리 접근이 발생하는 경우, 메모리 보호 방법은 메모리 접근에 대응하는 메모리 주소로부터 세그먼트 주소 및 서브 세그먼트 주소를 추출할 수 있다(620).
본 발명의 일측에 따르면, 메모리 보호 방법은 세그먼트 레지스터에 포함되어 있는 세그먼트 베이스 주소와 추출한 세그먼트 주소를 비교할 수 있다(630).
세그먼트 베이스 주소와 추출한 세그먼트 주소가 일치하지 않는 경우, 메모리 보호 방법은 CPU로 예외 신호를 전송할 수 있다(660).
세그먼트 베이스 주소와 추출한 세그먼트 주소가 일치하는 경우, 메모리 보호 방법은 CPU의 메모리에 대한 메모리 접근을 허가할 수 있다(670).
본 발명의 일측에 따르면, 메모리 보호 방법은 추출된 서브 세그먼트 주소가 서브 세그먼트 레지스터에 포함되어 있는지 여부를 판단할 수 있다(640).
추출된 서브 세그먼트 주소가 서브 세그먼트 레지스터에 포함되어 있지 않은 경우, 메모리 보호 방법은 CPU로 예외 신호를 전송할 수 있다(660).
추출된 서브 세그먼트 주소가 서브 세그먼트 레지스터에 포함되어 있는 경우, 메모리 보호 방법은 세그먼트 레지스터에 포함되어 있는 맵 비트(Map Bit)에 기반하여 추출된 서브 세그먼트 주소가 매핑되어 있는지 여부를 판단할 수 있다(641).
추출된 서브 세그먼트 주소가 매핑되어 있지 않은 경우, 메모리 보호 방법은 CPU로 예외 신호를 전송할 수 있다(660).
추출된 서브 세그먼트 주소가 매핑되어 있는 경우, 메모리 보호 방법은 CPU의 메모리에 대한 메모리 접근을 허가할 수 있다(670).
본 발명의 일측에 따르면, 메모리 보호 방법은 세그먼트 레지스터에 포함되어 있는 프로텍션 비트(Protection Bit)에 기반하여, 메모리 접근에 대한 허용 여부를 더 판단할 수 있다(650).
일실시예에 따른 프로텍션 비트는 CPU의 메모리에 대한 접근 권한 정보를 포함할 수 있다.
메모리에 대한 접근 권한은 CPU가 수행 중인 CPU 모드(Mode)에 따라 달리 설정될 수 있다. 일실시예에 따른 CPU 모드는 사용자 모드(User Mode) 및 관리자 모드(Supervisor Mode)를 포함할 수 있다.
CPU의 메모리에 대한 메모리 접근이 허용되지 않는 경우, 메모리 보호 방법은 CPU로 예외 신호를 전송할 수 있다(660).
CPU의 메모리에 대한 메모리 접근이 허용되는 경우, 메모리 보호 방법은 CPU의 메모리에 대한 메모리 접근을 허가할 수 있다(670).
실시예에 따라서는, 세그먼트 베이스 주소와 세그먼트 주소를 비교하는 단계(630), 서브 세그먼트 주소가 서브 세그먼트 레지스터에 포함되어 있는지 여부를 판단하는 단계(640) 및 세그먼트 레지스터에 포함되어 있는 프로텍션 비트(Protection Bit)에 기반하여, CPU의 메모리 접근에 대한 허용 여부를 판단하는 단계(650)는 순차적으로 또는 병렬적으로 수행될 수 있다.
본 발명에 따른 실시예들은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(Floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.
그러므로, 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.
200: 메모리 보호 장치
210: 서브 세그먼트 레지스터
220: 세그먼트 레지스터
230: 메모리 보호부

Claims (10)

  1. CPU로부터 메모리에 대한 메모리 접근이 발생하는 경우, 상기 메모리 접근에 대응하는 메모리 주소로부터 세그먼트 주소 및 서브 세그먼트 주소를 추출하는 단계;
    세그먼트 레지스터에 포함되어 있는 세그먼트 베이스 주소와 상기 세그먼트 주소를 비교하고, 상기 세그먼트 베이스 주소와 상기 세그먼트 주소가 일치하지 않는 경우, 상기 CPU로 상기 메모리에 대한 접근 불가를 나타내는 예외 신호(Exception Signal)를 전송하는 단계; 및
    상기 서브 세그먼트 주소가 서브 세그먼트 레지스터에 포함되어 있는지 여부를 판단하고, 상기 서브 세그먼트 주소가 상기 서브 세그먼트 레지스터에 포함되어 있지 않은 경우, 상기 CPU로 상기 예외 신호를 전송하는 단계
    를 포함하는 메모리 보호 방법.
  2. 제1항에 있어서,
    상기 서브 세그먼트 주소가 상기 서브 세그먼트 레지스터에 포함되어 있는 경우, 상기 세그먼트 레지스터에 포함되어 있는 맵 비트(Map Bit)에 기반하여 상기 서브 세그먼트 주소가 매핑되어 있는지 여부를 판단하고, 상기 서브 세그먼트 주소가 매핑되어 있지 않은 경우, 상기 CPU로 상기 예외 신호를 전송하는 단계
    를 더 포함하는 메모리 보호 방법.
  3. 제1항에 있어서,
    상기 세그먼트 레지스터에 포함되어 있는 프로텍션 비트(Protection Bit)에 기반하여, 상기 메모리 접근에 대한 허용 여부를 판단하고, 상기 메모리 접근이 허용되지 않는 경우, 상기 CPU로 상기 예외 신호를 전송하는 단계
    를 더 포함하는 메모리 보호 방법.
  4. 제3항에 있어서,
    상기 프로텍션 비트는
    상기 메모리에 대한 접근 권한 정보를 포함하는 메모리 보호 방법.
  5. 제1항 내지 제4항 중 어느 한 항의 방법을 실행하는 프로그램을 기록한 컴퓨터 판독 가능 기록 매체.
  6. 복수 개의 서브 세그먼트 주소를 포함하는 서브 세그먼트 레지스터;
    세그먼트 베이스 주소를 포함하는 세그먼트 레지스터; 및
    CPU로부터 메모리에 대한 메모리 접근이 발생하는 경우, 상기 세그먼트 레지스터 및 상기 서브 세그먼트 레지스터에 기반하여, 상기 메모리 접근에 대한 허용 여부를 판단하고, 상기 메모리 접근이 허용되지 않는 경우, 상기 CPU로 상기 메모리에 대한 접근 불가를 나타내는 예외 신호를 전송하는 메모리 보호부
    를 포함하는 메모리 보호 장치.
  7. 제6항에 있어서,
    상기 메모리 보호부는
    상기 메모리 접근에 대응하는 메모리 주소로부터 세그먼트 주소를 추출하고, 상기 세그먼트 베이스 주소와 상기 세그먼트 주소를 비교하며, 상기 세그먼트 베이스 주소와 상기 세그먼트 주소가 일치하지 않는 경우, 상기 CPU로 상기 예외 신호를 전송하는 메모리 보호 장치.
  8. 제6항에 있어서,
    상기 메모리 보호부는
    상기 메모리 접근에 대응하는 메모리 주소로부터 상기 메모리 접근에 대응하는 서브 세그먼트 주소를 추출하고, 상기 추출된 서브 세그먼트 주소가 상기 서브 세그먼트 레지스터에 포함되어 있는지 여부를 판단하며, 상기 추출된 서브 세그먼트 주소가 상기 서브 세그먼트 레지스터에 포함되어 있지 않은 경우, 상기 CPU로 상기 예외 신호를 전송하는 메모리 보호 장치.
  9. 제8항에 있어서,
    상기 메모리 보호부는
    상기 추출된 서브 세그먼트 주소가 상기 서브 세그먼트 레지스터에 포함되어 있는 경우, 상기 세그먼트 레지스터에 포함되어 있는 맵 비트(Map Bit)에 기반하여 상기 추출된 서브 세그먼트 주소가 매핑되어 있는지 여부를 판단하고, 상기 추출된 서브 세그먼트 주소가 매핑되어 있지 않은 경우, 상기 CPU로 상기 예외 신호를 전송하는 메모리 보호 장치.
  10. 제6항에 있어서,
    상기 메모리 보호부는
    상기 세그먼트 레지스터에 포함되어 있는 프로텍션 비트(Protection Bit)에 기반하여, 상기 메모리 접근에 대한 허용 여부를 판단하고, 상기 메모리 접근이 허용되지 않는 경우, 상기 CPU로 상기 예외 신호를 전송하는 메모리 보호 장치.
KR1020110009676A 2011-01-31 2011-01-31 멀티 프로세서 시스템에서의 메모리 보호 장치 및 방법 KR101724590B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020110009676A KR101724590B1 (ko) 2011-01-31 2011-01-31 멀티 프로세서 시스템에서의 메모리 보호 장치 및 방법
US13/353,784 US9135187B2 (en) 2011-01-31 2012-01-19 Apparatus and method for protecting memory in multi-processor system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110009676A KR101724590B1 (ko) 2011-01-31 2011-01-31 멀티 프로세서 시스템에서의 메모리 보호 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20120088370A true KR20120088370A (ko) 2012-08-08
KR101724590B1 KR101724590B1 (ko) 2017-04-11

Family

ID=46578385

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110009676A KR101724590B1 (ko) 2011-01-31 2011-01-31 멀티 프로세서 시스템에서의 메모리 보호 장치 및 방법

Country Status (2)

Country Link
US (1) US9135187B2 (ko)
KR (1) KR101724590B1 (ko)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102015210539A1 (de) * 2015-06-09 2016-12-15 Robert Bosch Gmbh Speicherschutzeinheit, Speicherverwaltungseinheit und Mikrocontroller
US10496292B2 (en) 2017-01-19 2019-12-03 International Business Machines Corporation Saving/restoring guarded storage controls in a virtualized environment
US10725685B2 (en) 2017-01-19 2020-07-28 International Business Machines Corporation Load logical and shift guarded instruction
US10496311B2 (en) 2017-01-19 2019-12-03 International Business Machines Corporation Run-time instrumentation of guarded storage event processing
US10579377B2 (en) 2017-01-19 2020-03-03 International Business Machines Corporation Guarded storage event handling during transactional execution
US10732858B2 (en) * 2017-01-19 2020-08-04 International Business Machines Corporation Loading and storing controls regulating the operation of a guarded storage facility
US10452288B2 (en) 2017-01-19 2019-10-22 International Business Machines Corporation Identifying processor attributes based on detecting a guarded storage event
KR20180087925A (ko) * 2017-01-25 2018-08-03 삼성전자주식회사 논리 어드레스와 물리 어드레스 사이에서 해싱 기반 변환을 수행하는 스토리지 장치

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040088566A1 (en) * 2002-11-05 2004-05-06 Sonics, Inc. Method and apparatus for configurable address mapping and protection architecture and hardware for on-chip systems
US20080271014A1 (en) * 2007-04-26 2008-10-30 Serebrin Benjamin C Lightweight World Switch

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0782458B2 (ja) * 1985-09-06 1995-09-06 株式会社日立製作所 データ処理装置
US5090866A (en) 1990-08-27 1992-02-25 United Technologies Corporation High temperature leading edge vane insert
US8504795B2 (en) * 2004-06-30 2013-08-06 Intel Corporation Method, system, and program for utilizing a virtualized data structure table
US7707385B2 (en) 2004-12-14 2010-04-27 Sony Computer Entertainment Inc. Methods and apparatus for address translation from an external device to a memory of a processor
US7386687B2 (en) 2005-01-07 2008-06-10 Sony Computer Entertainment Inc. Methods and apparatus for managing a shared memory in a multi-processor system
US8464009B2 (en) 2008-06-04 2013-06-11 Oracle America, Inc. Method for memory interleave support with a ceiling mask
KR101003102B1 (ko) 2008-09-24 2010-12-21 한국전자통신연구원 멀티 프로세싱 유닛에 대한 메모리 매핑방법, 및 장치

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040088566A1 (en) * 2002-11-05 2004-05-06 Sonics, Inc. Method and apparatus for configurable address mapping and protection architecture and hardware for on-chip systems
US20080271014A1 (en) * 2007-04-26 2008-10-30 Serebrin Benjamin C Lightweight World Switch

Also Published As

Publication number Publication date
US9135187B2 (en) 2015-09-15
US20120198206A1 (en) 2012-08-02
KR101724590B1 (ko) 2017-04-11

Similar Documents

Publication Publication Date Title
EP3491520B1 (en) Controlling access to pages in a memory in a computing device
KR101647274B1 (ko) 이종 컴퓨팅 플랫폼의 상이한 타입 프로세서들 간에 공유된 가상 페이지들의 동적 피닝
US9830276B2 (en) Replaying memory transactions while resolving memory access faults
KR20120088370A (ko) 멀티 프로세서 시스템에서의 메모리 보호 장치 및 방법
US8954959B2 (en) Memory overcommit by using an emulated IOMMU in a computer system without a host IOMMU
US9798487B2 (en) Migrating pages of different sizes between heterogeneous processors
US10169244B2 (en) Controlling access to pages in a memory in a computing device
US8631170B2 (en) Memory overcommit by using an emulated IOMMU in a computer system with a host IOMMU
EP3575970A1 (en) Process-based multi-key total memory encryption
EP2994837B1 (en) Multi-core page table sets of attribute fields
US20170003963A1 (en) Cleared memory indicator
TWI641947B (zh) 用於管理位址轉換和快取記憶體儲存的方法及裝置
BR112015001988B1 (pt) Método e equipamento para mapeamento de endereços virtuais para endereços físicos, e memória legível por computador
US20160259732A1 (en) Managing reuse information for memory pages
US11392508B2 (en) Lightweight address translation for page migration and duplication
US10467138B2 (en) Caching policies for processing units on multiple sockets
US10013360B2 (en) Managing reuse information with multiple translation stages
CN110196757A (zh) 虚拟机的tlb填写方法、装置及存储介质
TWI648625B (zh) 管理位址獨立的頁面屬性
US8910004B2 (en) Information processing apparatus, and method of controlling information processing apparatus
US9092486B2 (en) Extensible I/O activity logs
US9152347B2 (en) Storage and retrieval of high importance pages in an active memory sharing environment
US20230103230A1 (en) Translation lookaside buffer entry allocation system and method

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