KR19990071604A - 램구성내의정보를판독하고복원하기위한처리시스템및방법 - Google Patents

램구성내의정보를판독하고복원하기위한처리시스템및방법 Download PDF

Info

Publication number
KR19990071604A
KR19990071604A KR1019980703880A KR19980703880A KR19990071604A KR 19990071604 A KR19990071604 A KR 19990071604A KR 1019980703880 A KR1019980703880 A KR 1019980703880A KR 19980703880 A KR19980703880 A KR 19980703880A KR 19990071604 A KR19990071604 A KR 19990071604A
Authority
KR
South Korea
Prior art keywords
memory
data
instruction
processing unit
format
Prior art date
Application number
KR1019980703880A
Other languages
English (en)
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 요트.게.아. 롤페즈
Publication of KR19990071604A publication Critical patent/KR19990071604A/ko

Links

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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/22Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using ferroelectric elements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/447Target code generation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Advance Control (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

프로세서는 메모리와 처리 유닛을 포함한다. 상기 메모리는 판독시 데이터를 상실하는 형식을 가진다. 상기 처리 유닛은, 실행될 때, 상기 처리 유닛으로 하여금 상기 메모리로부터 상기 데이터를 판독하게 하는 제 1 형식 및 제 2 형식의 명령어를 가진다. 상기 제 1형식의 명령어들은 상기 처리 유닛으로 하여금 판독 후 상기 메모리에 상기 데이터를 복원하게 하고, 상기 제 2형식의 명령어들은 상기 처리 유닛으로 하여금 판독 후 상기 데이터를 복원하지 않게 한다. 프로그램의 컴파일 작업동안, 상기 위치로부터 데이터를 판독하는 생성된 명령어가 그렇게 하는 마지막 명령어인지 결정될 수 있다. 만약 그렇다면, 제 2형식의 명령어가 생성된다. 그렇지 않다면, 제 1형식의 명령어가 생성된다.

Description

램 구성내의 정보를 판독하고 복원하기 위한 처리 시스템 및 방법.
처리 시스템은 또한, 상기 처리 유닛으로 하여금 메모리로부터 데이터를 로드시키는 명령어를 실행할 수 있는 처리 유닛을 포함한다. 종래에, 상기 메모리는 다이나믹 램 메모리(DRAM) 또는 스태틱 램 메모리(SRAM)를 포함할 수 있으나 그것은 또한 강유전성 램(FRAM)을 포함할 수 있다. DRAM과 파괴성 FRAM은, 데이터가 DRAM과 FRAM으로부터 판독될 때 상실되는 판독-파괴성 메모리이다.
상기 처리 시스템에서 실행중인 프로그램이 DRAM이나 FRAM으로부터 다시 데이터를 판독하기 위해서는, 마치 상기 메모리가 SRAM인 것처럼, 상기 데이터는 그것이 판독된 메모리 위치에 그것을 재기록함으로써 복원될 필요가 있다. 데이터를 복원하는 것은 상기 메모리가 판독을 위한 이용가능한 시간을 감소시키고, 특히 FRAM에서 전력을 소비한다. 또한 데이터를 복원하는 것은 메모리의 평균 수명을 감소시킬 수 있다.
본 발명은 처리 시스템과 상기 처리 시스템을 위한 처리 유닛과 상기 처리 시스템을 위한 명령어를 생성하는 방법과 상기 처리 시스템을 위한 명령어를 생성하는 컴파일러에 관한 것이다.
제 1도는 처리 시스템을 보여주는 도면.
제 2도는 명령어의 실행 실시예의 시간적인 모형을 보여주는 도면.
제 3도는 명령어 포맷의 실시예를 보여주는 도면.
제 4도는 명령어를 생성하는 흐름도를 보여주는 도면.
*도면의 주요 부호를 나타내는 설명*
10: 데이터 메모리 12: 처리 유닛
11: 복원 회로 14: 명령어 메모리
30: 명령어
다른 무엇보다도, 본 발명의 목적은 데이터 복원에 소요되는 비용을 감소시키기 위한, 처리 시스템과 상기 처리 시스템을 위한 처리 유닛과 상기 처리 시스템을 위한 명령어를 생성시키는 방법과 상기 처리 시스템을 위한 명령어를 생성시키는 컴파일러를 제공하는 것이다.
본 발명은,
판독시 데이터를 상실하는 형태의 적어도 하나의 메모리 기억 위치를 가지는 메모리와,
각각이 실행될 때, 상기 처리 유닛으로 하여금 상기 메모리로부터 상기 데이터를 판독하게 하는 제 1형식과 제 2 형식의 명령어를 가지되, 상기 제 1 형식의 명령어들은 상기 처리 유닛으로 하여금 판독후 상기 메모리에 상기 데이터를 복원하게 하고, 상기 제 2 형식의 명령어들은 상기 처리 유닛으로 하여금 판독후 상기 데이터를 복원하지 않게 하는 처리 유닛을 포함하는 처리 시스템을 제공한다.
본 발명은 또한,
판독시 데이터를 상실하는 기억 위치를 가진 메모리와,
상기 메모리로부터 데이터를 판독하기 위한 제 1 및 제 2 형식의 명령어를 가지되, 제1 및 제 2 형식의 명령어를 실행할 때 상기 메모리에 상기 데이터를 각각 복원하고 및 복원하지 않는 처리 유닛을 가지는 처리 시스템을 위한 프로그램의 연산을 실행하는 명령어를 생성하는 방법을 제공하되,
상기 방법은,
프로그램의 연산이 메모리 기억 위치로부터 데이터를 판독하는지를 결정하는 단계와,
상기 프로그램 실행중, 상기 연산 다음에 상기 메모리로부터 데이터를 판독하는 또다른 연산이 후속될 수 있는지를 결정하는 단계와,
상기 연산 다음에 상기 또다른 연산이 후속될 수 있을 때, 제 1 형식의 명령어를 생성하는 단계와,
상기 연산 다음에 상기 또다른 연산이 후속될 수 없을 때, 제 2 형식의 명령어를 생성하는 단계를 포함한다.
본 발명에 따른 상기 방법은, 상기 데이터가 다시 메모리로부터 판독될 필요가 없다는 것이 프로그램 구조로부터 알려질 때, 데이터의 복원을 생략하는 특별한 형식의 명령어를 생성함으로써, 상기 프로그램 실행중 복원 연산이 거의 요구되지 않는다는 것을 확실히 한다. 예를 들어, 하나의 메모리 기억 위치가 어떤 프로그램 변수와 (서브)프로그램을 저장하도록 사용된다면, 상기 변수의 판독 다음에 상기 (서브)프로그램의 종료전에는 또다른 판독이 나타나지 않거나 또는 적어도 상기 변수에 대한 기록전에는 일어나지 않는 경우이다.
본 발명에 따른 상기 처리 시스템은, 처리 시스템으로 하여금 판독 파괴성 메모리로부터 데이터를 판독하게 하는 명령어의 실행이, 상기 데이터가 다시 요구되는지를 프로그램 구조로부터 알 수 있는 지에 따라서 구별될 수 있는 프로그램을 실행하는 것을 가능하게 한다.
본 발명에 따른 상기 처리 시스템은, 상기 처리 유닛으로 하여금 상기 메모리 기억 위치로부터 데이터를 판독하게 하고 상기 메모리에 데이터를 복원하게 하는 각 명령어 형식이, 상기 처리 유닛으로 하여금 상기 메모리에 데이터를 복원하지 못하게 하는 대응 명령어 형식을 가지는 실시예를 가진다. 따라서, 메모리에 데이터를 복원하는 것과 데이터를 복원하지 않는 것 사이의 선택 가능성은, 메모리로부터 판독하는 모든 형식의 명령어들에서 이용가능하며, (배타적으로 LOAD 명령어와 같은) 특정한 형식의 명령어들에 한정되는 것은 아니다. 이러한 선택을 제공하는 형식의 명령어들은 직접 어드레스를 가진 명령어와 레지스터 간접 어드레스를 가진 명령어를 포함한다. 또한 상기 형식의 명령어들은 유일하게 레지스터를 로드하는 명령어와 메모리로부터 로드된 데이터에 논리 또는 산술연산을 수행하는 명령어를 포함할 수 있다.
본 발명의 이러한 그리고 다른 유리한 특징들이 도면을 사용해서 예시될 것이다.
제 1도는 처리 시스템을 보여준다. 상기 처리 시스템은 데이터 메모리(10)와 처리 유닛(12)와 명령어 메모리(14)를 포함한다. 데이터 메모리(10)는 판독 파괴성 메모리 부분(10a)(예를 들어 FRAM)과 비 판독 파괴성 부분(10b)과 복원회로(11)를 포함한다. 상기 처리 유닛(12)는 주소-버스, 데이터-버스, 복원 신호선을 통하여 상기 데이터 메모리(10)에 결합된다. 상기 처리 유닛(12)는 주소-버스와 명령어-버스를 통하여, 명령어 메모리(14)에 접속된다. 상기 처리 시스템의 세부적인 것은 사례에 의해서 주어지는데, 본 발명에 대한 선입견없이, 명령어 메모리(12)는 상기 데이터 메모리(10)의 주소-버스와 데이터-버스를 사용하여, 상기 데이터 메모리 (10)의 일부가 될 수 있다. 게다가, 단지 일부분인 (10a)가 아니라, 상기 데이터 메모리(10)의 전부가 판독 파괴성일 수 있다.
연산에서, 상기 처리 유닛(12)는 명령어 메모리(14)로부터 연속적인 명령어들을 판독한다. 명령어를 판독한 후, 상기 처리 유닛(12)는 그 명령어를 실행한다.
제 2도는 명령어 In의 실행 실시예의 시간적인 모형을 보여준다. 이러한 실시예에서, 상기 처리 유닛(12)는 연속적인 단계에 있는 명령어 In를 취급한다. 제 1 단계에서, 상기 처리 유닛(12)는 명령어 In을 해독한다. 상기 처리 유닛(12)는, 상기 명령어가 데이터 메모리(10)로부터의 데이터 판독을 포함한다는 것을 발견한다면, 상기 처리 유닛(12)는 명령어 In로부터 주소를 꺼내고, 상기 주소를 명령어 실행의 제 2단계에 발송한다. 상기 주소에 응답하여, 상기 데이터 메모리(10)는 상기 주소에 의하여 어드레스된 메모리 위치로부터 데이터를 판독하고 상기 데이터를 데이터-버스를 통하여 상기 처리 유닛(12)에 제공한다. 명령어 실행의 제 3단계에서, 상기 처리 유닛(12)는 데이터-버스로부터 상기 데이터를 판독한다. 명령어 실행의 제 4단계에서, 상기 처리 유닛(12)는 상기 명령어에 의해 지시된 어떤 기능이든지 실행하는데, 예를 들어 상기 처리 유닛(12)는 레지스터의 데이터를 로드하거나 레지스터의 내용에 데이터를 가산한다.
상기 데이터가 판독 파괴성 메모리 셀, 예를 들어, 강유전성 램 셀,을 포함하는 상기 데이터 메모리(10)의 일부인 (10a)로부터 판독되고, 상기 데이터가 데이터 메모리(10)으로부터 다시 판독되어져야 할 때, 상기 데이터는 데이터 메모리(10)에 복원되어야 할 필요가 있다. 상기 데이터의 복원은, 처리 유닛(12)가 명령어에 의해 지시된 기능을 실행하는 명령어 실행의 제 4단계동안 시작될 수 있다.
복원은 데이터-버스를 통하여, 상기 어드레스된 메모리 위치에 상기 데이터를 다시 기록하는 것에 의해 구현될 수 있지만, 바람직하게는 복원은 상기 데이터 메모리(10)에서 내부적으로 구현되는데 즉, 버스를 통하여 상기 데이터를 전송할 필요없이, 예를 들어, DRAM과 FRAMs 등 그 자체로서 잘 알려진 복원 회로를 사용하여 구현될 수 있다.
복원 동안, 복원되고 있는 데이터 메모리(10)의 일부는 판독될 수 없다. 예를 들어, 파이프라인 방식에서 생길 수 있는, 명령어 In의 판독 후 다음 명령어 In+1의 실행동안 (즉, 상기 메모리가 명령어 In실행의 제 2단계에서 어드레스될 때, 다음 명령어 In+1의 해독이 시작될 수 있고, 명령어 In이 실행될 때 처리 유닛은 다음 명령어 In+1를 위한 데이터를 판독할 준비가 되어 있을 때) 상기 데이터 메모리(10)에 대한 또다른 접근이 요구된다면, 이것은 지연을 발생시킬 수 있다. 더욱이, 복원은 상기 처리 시스템이 여분의 전력을 소비한다는 것을 의미한다. 게다가, 어떤 메모리 셀들은, 오류가 예상되기 전에, 단지 제한된 회수만큼만 기록될 수 있다. 따라서, 데이터의 복원은 메모리의 평균 수명을 감소시킬 수 있다. 본 발명에 따라서, 상기 처리 유닛(12)는 명령어의 지시하에, 복원이 요구된다고 신호할 때에만 복원이 실행된다. 판독 파괴성 메모리(10a)가 처리 유닛(12)로부터 분리된 집적 회로에서 구현되는 경우에, 상기 집적 회로는 바람직하게는, 처리장치(12)의 복원 인에이블 출력에 결합된 복원 인에이블 입력을 포함하되, 상기 메모리(10a)는 프로세서가 복원 인에이블 신호를 상기 복원 인에이블 입력에 발송할 때에만 활성화되는 복원 회로를 포함한다. 복원은 또한, 데이터-버스를 통하여 상기 처리 유닛(12)로부터 상기 데이터 메모리(10)에 다시 기록함으로써 달성될 수 있다.
판독과 복원은 블록 단위로 실행될 수 있는데, 예를 들면, 행렬 메모리로부터 한 행(블록)의 데이터를 판독하고, 상기 행을 복원함으로써 실행될 수 있다. 이러한 경우에, 상기 블록은 메모리로부터 상기 블록의 또다른 판독없이, 상기 블록으로부터 다수의 데이터 항목을 판독하기 위한 임시 메모리(캐쉬 같은)에 유지될 수 있다. 상기 블록이 복원되어야 한다면, 상기 블록을 상기 행렬로부터 판독되게 한 단지 그 명령어만이, 상기 블록이 복원되어야 한다고 지시할 필요가 있다.
제 3도는 상기 처리 유닛(12)가 데이터의 복원이 요구되는지를 신호하게 하는 명령어 포맷의 실시예를 보여준다. 상기 명령어(30)는 연산코드 OPC 와 오퍼랜드 OP와 복원 비트 RB 를 포함한다. 상기 복원 비트는 데이터 메모리(10)로부터 데이터 판독을 포함하는 명령어에만 단지 제공될 필요가 있다. 바람직하게는, 이러한 명령어들은 상기 데이터 메모리(10)의 전부 즉, 판독 파괴성 부분(10a)과 비-판독 파괴성 부분(10b)의 양 형태, 로부터 판독하는데 사용될 수 있다. 또한 바람직하게는, 판독을 의미하는 연산코드 OPC 를 가진 모든 명령어들은 복원 비트 RB 를 포함하지만, 상기 복원 비트는 또한 몇몇의 연산코드에만 제한될 수 있다. 별도의 복원 비트를 사용하는 대신에, 상이한 연산코드가 각각 복원을 포함하는 및 포함하지 않는 동일한 명령어의 상이한 버전을 지시하는데 사용될 수 있다. 선택적으로, 모든 연산코드는 복원 비트 RB 를 포함할 수 있되, 상기 복원 비트 RB 는, 메모리로부터의 판독을 포함하지 않는 연산코드 OPC 의 실행에는 영향을 주지 않는다.
제 4도는 상기 명령어 메모리(14)에 저장을 위한 명령어를 생성하는 흐름도를 보여준다. 상기 흐름도의 제 1단계(40)에서 실행을 위해 생성되어져야 하는 연산들을 특정하는 소스 프로그램이 받아들여진다. 상기 제 1 단계(40)에서, 메모리 위치가 상기 소스 프로그램의 변수로 할당되고, 상기 소스 프로그램은 임시 명령어의 리스트로 번역된다. 상기 흐름도의 제 2 단계(41)는 단계(42),(43),(44),(45)로 된 루프를 제어한다. 상기 제 2 단계는 상기 루프가 상기 리스트의 모든 임시 명령어에 대해 실행될 때까지, 루프가 상기 리스트의 각 특정한 임시 명령어에 대해 한번씩 실행되도록 한다.
상기 루프의 제 1 단계(42)에서는, 특정한 임시 명령어가 판독-파괴성 메모리 위치로부터의 데이터 판독을 포함하는지가 결정된다. 만약 포함하지 않는다면, 특정한 임시 명령어에 대응하고 기계명령어가 실행될 때 데이터의 복원이 요구되지 않는다고 신호하는, 물리적 또는 가상 기계 명령어가 생성되는 방법으로 상기 루프의 제 2 단계(45)가 실행된다. 특정한 임시 명령어가 판독 파괴성 메모리 위치로부터의 판독을 포함할 때, 상기 (서브)프로그램의 실행중, 상기 특정한 임시 명령어의 실행후 그리고 상기 (서브)프로그램의 실행 종료 전 또는 어떤 다른 데이터가 상기 위치에 기록되기 전에 데이터가 상기 위치로부터 판독될 수 있는지를 검사하는 상기 루프의 제 3단계(43)가 실행된다. 그렇지 않다면, 상기 루프의 제 2단계(45)가 실행되고, 데이터가 그러한 식으로 판독될 수 있다면, 상기 특정한 임시 명령어에 대응하고 기계명령어가 실행될 때 데이터의 복원이 요구되어진다고 신호하는 기계명령어가 생성되는 상기 루프의 제 4단계(44)가 실행된다. 상기 루프의 제 3단계(43)의 검사는 완전할 필요가 없는데, 어떤 데이터도 상기 설명한 방법으로 판독될 수 없다는 것을 확실하게 결정할 수 없다면, 비록 상기 데이터가 상기 설명된 방법으로 판독될 것이라는 것이 확실하지 않을때라도 또는 더 양호한 검사방법이 어떤 데이터도 상기 설명한 방법으로 판독될 수 없다는 것을 보여줄지라도, 상기 데이터가 복원되도록 하게 하는 기계 명령어가 생성될 수 있다.
복원/비-복원 명령어의 선택을 위한 상기 루프의 제 3단계(43)의 검사는, 임시 명령어를 발생시키는 소스 프로그램으로부터의 정보를 사용함으로써 개선될 수 있다. 바람직하게는, 메모리 위치가 "재 판독"인지를 변수들에 사용된 메모리 위치에 기초해서가 아니라 프로그램 변수나 프로그램 구조에 기초해서 결정한다. 부가하여 변수의 범위에 관한, 또는 메모리 위치가 다시 판독될지를 결정하는데 사용되는 배열에 제한된 인덱스된 주소에 관한 정보를 사용할 수 있다. (지역적 범위는 베이스 레지스터에 의해 가리켜진 데이터 블록을 사용하여 구현될 수 있고, "재 판독"조건은 그리고나서 관련된 실제 메모리 위치에 대한 인식없이 상기 데이터블록에 대해 검사될 수 있다. 배열의 어느 위치가 인덱스 방식으로 판독된다면 그 배열은 "판독"이라고 표시될 수 있다.)
상기 루프의 제 3 단계(43)의 검사는, 단순히 다음 임시 명령어를 취하고, 그것에 다음과 같은 프로시져를 적용함으로써 구현될 수 있다.
a) 상기 임시 명령어가 임시 명령어들의 리스트의 마지막이라면: 복원이 요구되지 않는다고 보고.
b) 상기 임시 명령어가 무조건적 점프 명령어라면: 점프 타겟을 위해서 이 프로시져를 반복적으로 실행.
c) 상기 임시 명령어가 조건적 점프 명령어라면: 다음 임시 명령어와 점프 타겟을 위해서 프로시져를 실행. 어느 실행에서 복원이 요구된다고 보고하면: 복원이 요구된다고 보고, 그렇지 않다면 복원이 요구되지 않는다고 보고.
d) 상기 임시 명령어가 특정 임시 명령어에 의해 어드레스된 변수에 기록한다면: 복원이 요구되지 않는다고 보고.
e) 상기 임시 명령어가 특정한 임시 명령어에 의해 어드레스된 변수로부터 판독한다면: 복원이 요구된다고 보고.
f) 상기 임시 명령어의 어느 것도 프로그램 제어나 메모리 위치에 영향을 주지 않는다면: 이 경우에는 상기 a)단계로부터 다음 임시 명령어까지의 단계들을 적용.
복원이 요구되는지를 결정하는 속도를 향상하기 위하여 좀더 세련된 알고리즘들이 사용될 수 있다. 예를 들어, 리스트를 어떤 내부적인 점프 타겟이나 점프 명령어를 포함하지 않는 임시 명령어들의 "청크(chunks)"로 분할할 수 있다. 각 청크에 대해서 판독 파괴성 메모리에 있는 변수들의 테이블을 만든다. 상기 테이블의 엔트리는 그 변수들이 다시 판독될 것인지를 나타낸다.
프로그램 실행의 끝에서 종료하는 청크로 시작한다. 그러한 청크에 대해서, 상기 테이블은 변수들이 다시 판독되지 않을 것이라는 것을 나타내는 엔트리로 초기적으로 채워진다. 그리고 나서 상기 청크의 임시 명령어를 통해서 거꾸로 작업한다.
a) 상기 임시 명령어가 변수로부터 데이터를 판독한다면, 상기 변수에 대한 엔트리가 데이터가 그 변수로부터 판독되는지를 나타내는지 검사하고, 상기 엔트리에 따라서 기계명령어를 생성한다. 그것은 상기 변수에 대한 테이블의 엔트리를 "재 판독"으로 변화시킨다.
b) 상기 임시 명령어가 데이터를 변수에 기록한다면, 그 위치에 대한 엔트리를 "재 판독 불가"로 변화시킨다.
(조건적) 점프로 종료하는 청크에 대해서는, 상기 점프가 이동할 수 있는 어떤 청크의 테이블이 상기 변수에 대해 "재 판독"엔트리를 가진다면 그 변수에 대한 엔트리를 "재 판독"으로 초기화하고, 그렇지 않다면, "재 판독 불가"로 초기화시킨다. 그 후, 앞서와 같이 청크를 통해서 거꾸로 작업한다. 루프의 일부분인 청크들은 두 번을 통하여 작업된다. 한번은 청크의 초기화를 위한 테이블 엔트리를 결정하고, 연속해서 한번은 기계명령어를 생성하는 것이다.
몇몇 오퍼레이팅 시스템 버퍼를 위해서, 예를 들어 I/O버퍼를 위해서, 그들이 비 복원 판독의 사용을 가능하게 하는 단지 한번만 판독될 수 있다는 것이 구체화될 수 있다. 명령어가 상기 복원 비트 RB 를 세트해야 하는지의 정보는 또한 프로그래머에 의해 제공될 수 있다. 이러한 목적을 위해서, 컴퓨터 언어는, 프로그래머가 특정 변수는 어떤 명령어뒤에 다시 사용되지 않을 것이라는 것을 지시할 수 있도록 하는 구성이 부여될 수 있다. 이러한 정보는 제 4도의 흐름도의 제 4단계(43)에서 사용될 수 있다. 물론 어셈블리 수준 프로그램에서는, 기록 후 메모리 위치에 데이터를 복원해야 할 지에 대한 결정이 전적으로 프로그래머에게 남겨져 있을 수 있다.
제 4도의 흐름도는 컴퓨터 판독 가능한 메모리에 저장된 컴파일러를 사용하여 실행될 수 있고 범용 컴퓨터나 제 1도의 컴퓨터에서 실행될 수 있다.
데이터를 복원해야 하는지의 지시가 최후로 데이터를 판독하는 명령어에 즉시 포함되어야 할 필요는 없다. 메모리내에 데이터와 함께 복원 비트를 포함할 수 있다. 이러한 경우에, 복원 회로(11)는, 데이터와 함께 포함된 복원 비트가 상기 데이터가 복원되어야 한다고 지시할 때에만 상기 데이터를 복원하도록 구성된다. 컴파일러는 어떤 임시 명령어가 한 위치로부터 데이터를 판독하는 '마지막에서 두 번째(beforelast)' 임시 명령어인지 결정하고 상기 '마지막에서 두번째(beforelast)' 명령어에 대해서 상기 위치에 대한 복원 비트를 리셋하는 명령어를 생성한다. 상기 위치를 판독하는 다른 명령어들은 상기 복원 비트를 세트로 남겨둔다. (상기 위치가 그 위치에 대한 기록 명령어(write instruction) 후에 단지 한번만 판독된다면, 상기 컴파일러는 상기 기록 명령어가 상기 복원 비트를 리셋하게 한다.)

Claims (13)

  1. 판독시 데이터를 상실하는 형식의 적어도 하나의 메모리 기억 위치를 가지는 메모리와,
    각각이 실행될 때, 처리 유닛으로 하여금 상기 메모리로부터 상기 데이터를 판독하게 하는 제 1형식과 제 2형식의 명령어를 가지는 처리 유닛을 포함하되, 상기 제 1형식의 명령어는 상기 처리 유닛으로 하여금 판독 후 상기 메모리에 상기 데이터를 복원하게 하고, 상기 제 2형식의 명령어는 상기 처리 유닛으로 하여금 판독 후 상기 데이터를 복원하지 않게 하는, 처리 시스템.
  2. 제 1항에 있어서, 상기 처리 유닛으로 하여금 상기 메모리 기억 위치로부터 데이터를 판독하게 하고 상기 메모리에 상기 데이터를 복원하게 하는 각 명령어 형식은, 상기 처리 유닛으로 하여금 상기 메모리에 상기 데이터를 복원하지 않게 하는 대응 명령어 형식을 가지는 처리 시스템.
  3. 제 1항 또는 제 2항에 있어서, 제 1형식과 제 2형식의 명령어들을 포함하는 프로그램으로 프로그램된 처리 시스템으로서,
    상기 명령어가 상기 처리 유닛으로 하여금 판독시 데이터를 상실하는 메모리 기억 위치로부터 데이터를 판독하게 하고, 프로그램 실행중 상기 명령어 다음에, 상기 처리 유닛으로 하여금 상기 메모리 기억 위치로부터 데이터를 판독하게 하는 또다른 명령어가 후속할 수 있는 프로그램의 위치에 존재한다면 각 명령어는 제 1형식이 되고,
    적어도 하나의 명령어는 제 2형식이 되어 상기 처리 유닛으로 하여금 판독 시 데이터를 상실하는 메모리 기억 위치로부터 데이터를 판독하게 하며, 상기 적어도 하나의 명령어는, 프로그램 실행중, 상기 명령어 다음에 상기 처리 유닛으로 하여금 상기 메모리 기억 위치로부터 데이터를 판독하게 하는 또다른 명령어가 후속할 수 없는 프로그램의 위치에 존재하는 처리 시스템.
  4. 제 1항 내지 3항 중 어느 한 항에 있어서, 상기 메모리는 상기 데이터와 함께 저장된 복원 비트에 응답하여 상기 데이터를 복원하도록 배열된 복원 회로를 포함하는 처리 시스템.
  5. 제 1항에 따른 처리 시스템에 사용되는 메모리로서, 복원 회로와 복원 인에이블 입력을 포함하고, 복원 인에이블 신호가 상기 복원 인에이블 입력에 제공된다면, 판독 후 데이터를 복원하는 메모리.
  6. 제 4항에 따른 처리 시스템에 사용되는 메모리.
  7. 판독시 데이터를 상실하는 기억 위치를 가진 메모리와,
    상기 메모리로부터 데이터를 판독하기 위한 제 1 및 제 2형식의 명령어를 가지는 처리 유닛이되, 상기 제 1 및 제 2형식의 명령어를 실행할 때, 상기 메모리에 상기 데이터를 각각 복원 및 복원하지 않는 처리 유닛을 구비한 처리 시스템을 위한 프로그램의 연산을 실행하는 명령어를 생성하는 방법으로서,
    상기 프로그램내의 연산이 메모리 기억 위치로부터 데이터를 판독하는 지를 결정하는 단계와
    프로그램 실행중 상기 연산 다음에 상기 메모리로부터 데이터를 판독하는 또다른 연산이 후속할 수 있는지를 결정하는 단계와
    상기 연산 다음에 상기 또다른 연산이 후속할 수 있을 때는 상기 제 1 형식의 명령어를 생성하고, 상기 연산 다음에 상기 또다른 연산이 후속할 수 없을 때는 상기 제 2형식의 명령어를 생성하는 단계를 포함하는 방법.
  8. 제 7항에 있어서, 상기 기계 명령어의 실행을 위하여 상기 기계 명령어를 메모리내로 로드하여 상기 메모리로부터 상기 처리 시스템이 상기 기계 명령어를 판독할 수 있도록 하는, 메모리에 상기 기계 명령어를 로드하는 단계를 포함하는 방법.
  9. 판독시 데이터를 상실하는 기억 위치를 가진 메모리와,
    상기 메모리로부터 데이터를 판독하기 위한 제 1 및 제 2형식의 명령어를 가지는 처리 유닛을 포함하되, 상기 제 1 및 제 2 형식의 명령어를 실행할 때 상기 메모리에 상기 데이터를 각각 복원 및 복원하지 않는 처리 유닛을 구비한 처리 시스템을 위한 프로그램을 생성하는 컴파일러로서,
    상기 프로그램내의 연산이 메모리 기억 위치로부터 데이터를 판독하는지를 결정하는 수단과
    상기 프로그램 실행중 상기 연산 다음에 상기 메모리로부터 데이터를 판독하는 또다른 연산이 후속할 수 있는지를 결정하는 수단과
    상기 연산 다음에 상기 또다른 연산이 후속할 수 있을 때는 상기 제 1 형식의 명령어를 생성하고, 상기 연산 다음에 상기 또다른 연산이 후속할 수 없을 때는 상기 제 2형식의 명령어를 생성하는 수단을 포함하는 컴파일러.
  10. 제 9항에 있어서, 기계 판독 가능한 메모리에 저장된 컴파일러.
  11. 제 10항에 따른 기계 판독 가능한 메모리를 포함하는 컴파일링 기계.
  12. 각각이 실행될 때, 처리 유닛으로 하여금 메모리로부터 데이터를 판독하게 하는 제 1 형식 및 제 2 형식의 명령어를 가지는 처리 유닛으로서, 상기 제 1 형식의 명령어는 상기 처리 유닛으로 하여금 상기 메모리에 상기 데이터를 복원하게 하고, 상기 제 2형식의 명령어는 상기 처리 유닛으로 하여금 상기 데이터를 복원하지 않게 하는 처리 유닛.
  13. 제 12항에 있어서, 상기 처리 유닛으로 하여금 데이터를 상기 메모리 위치로부터 판독하게 하고 상기 데이터를 상기 메모리내에 복원하게 하는 각 명령어 형식은, 상기 처리 유닛으로 하여금 상기 데이터를 상기 메모리내에 복원하지 않게 하는 대응 명령어 형식을 가지는 처리 유닛.
KR1019980703880A 1996-09-26 1997-07-07 램구성내의정보를판독하고복원하기위한처리시스템및방법 KR19990071604A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP96202700 1996-09-26
EP96202700.9 1996-09-26
PCT/IB1997/000843 WO1998013762A1 (en) 1996-09-26 1997-07-07 Processing system and method for reading and restoring information in a ram configuration

Publications (1)

Publication Number Publication Date
KR19990071604A true KR19990071604A (ko) 1999-09-27

Family

ID=8224436

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019980703880A KR19990071604A (ko) 1996-09-26 1997-07-07 램구성내의정보를판독하고복원하기위한처리시스템및방법

Country Status (6)

Country Link
US (1) US6012140A (ko)
EP (1) EP0870237B1 (ko)
JP (2) JP4180115B2 (ko)
KR (1) KR19990071604A (ko)
DE (1) DE69739732D1 (ko)
WO (1) WO1998013762A1 (ko)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6263398B1 (en) * 1998-02-10 2001-07-17 Ramtron International Corporation Integrated circuit memory device incorporating a non-volatile memory array and a relatively faster access time memory cache
US6725342B1 (en) * 2000-09-26 2004-04-20 Intel Corporation Non-volatile mass storage cache coherency apparatus
US6785767B2 (en) 2000-12-26 2004-08-31 Intel Corporation Hybrid mass storage system and method with two different types of storage medium
JP2002207633A (ja) * 2001-01-04 2002-07-26 Fujitsu Ltd 電子装置
US7275135B2 (en) * 2001-08-31 2007-09-25 Intel Corporation Hardware updated metadata for non-volatile mass storage cache
US7260672B2 (en) * 2001-09-07 2007-08-21 Intel Corporation Using data stored in a destructive-read memory
KR100541366B1 (ko) * 2002-07-19 2006-01-16 주식회사 하이닉스반도체 고속 데이터 억세스를 위한 디램
US8670807B2 (en) * 2007-08-21 2014-03-11 D-Wave Systems Inc. Systems, methods, and apparatus for controlling the elements of superconducting processors
KR101121218B1 (ko) 2008-08-27 2012-03-22 니혼샤신 인사츠 가부시키가이샤 가식 시트 및 성형 동시 가식 장치

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5459846A (en) * 1988-12-02 1995-10-17 Hyatt; Gilbert P. Computer architecture system having an imporved memory
US5226147A (en) * 1987-11-06 1993-07-06 Mitsubishi Denki Kabushiki Kaisha Semiconductor memory device for simple cache system
US5249282A (en) * 1990-11-21 1993-09-28 Benchmarq Microelectronics, Inc. Integrated cache memory system with primary and secondary cache memories
US5338963A (en) * 1993-04-05 1994-08-16 International Business Machines Corporation Soft error immune CMOS static RAM cell
US5469559A (en) * 1993-07-06 1995-11-21 Dell Usa, L.P. Method and apparatus for refreshing a selected portion of a dynamic random access memory
EP0793827B1 (en) 1994-11-22 2002-03-06 Monolithic System Technology, Inc. Method and structure for utilizing a dram array as second level cache memory

Also Published As

Publication number Publication date
US6012140A (en) 2000-01-04
JP2000501872A (ja) 2000-02-15
JP4180115B2 (ja) 2008-11-12
JP2008217799A (ja) 2008-09-18
EP0870237A1 (en) 1998-10-14
EP0870237B1 (en) 2010-01-06
DE69739732D1 (de) 2010-02-25
WO1998013762A1 (en) 1998-04-02

Similar Documents

Publication Publication Date Title
US5870607A (en) Method and apparatus for selective replay of computer programs
JP2008217799A (ja) 処理システムおよび情報をram構体で読取りおよび復元する方法
KR20030059339A (ko) 단일 스텝 처리 방법 및 장치
US6925522B2 (en) Device and method capable of changing codes of micro-controller
CN105824750A (zh) 一种在NorFlash程序空间调试的软断点模拟方法
US4124892A (en) Data processing systems
JP2009020695A (ja) 情報処理装置及びシステム
KR19980024622A (ko) 프로그램 실행 방법 및 그 방법을 이용한 장치
JP4009461B2 (ja) 半導体装置
JP3507193B2 (ja) ロード・ストア命令処理装置
JPH0222413B2 (ko)
KR20000008845A (ko) 컴퓨터 시스템의 부팅방법
JP2000029508A (ja) プログラマブルコントローラ
JPH0233173B2 (ko)
JPH11259308A (ja) プログラマブルコントローラ
JPH05150943A (ja) コンピユータ装置
JPH03194633A (ja) 制御記憶の再書き込み方式
JPS61262945A (ja) 記憶装置
JPH0324640A (ja) 情報処理装置のデバッグ方式
JPS6113612B2 (ko)
JPH0619713B2 (ja) 論理型デ−タ処理装置
JPS59153247A (ja) デバツグ装置
JPH0277946A (ja) マイクロプログラムのカバレッジ測定方式
JPH0287227A (ja) データ処理装置
JPH0443431A (ja) 制御記憶へのマイクロプログラム格納方法

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
NORF Unpaid initial registration fee