KR940003325B1 - 가상 입력/출력 지령의 변환장치 및 방법 - Google Patents

가상 입력/출력 지령의 변환장치 및 방법 Download PDF

Info

Publication number
KR940003325B1
KR940003325B1 KR1019880010104A KR880010104A KR940003325B1 KR 940003325 B1 KR940003325 B1 KR 940003325B1 KR 1019880010104 A KR1019880010104 A KR 1019880010104A KR 880010104 A KR880010104 A KR 880010104A KR 940003325 B1 KR940003325 B1 KR 940003325B1
Authority
KR
South Korea
Prior art keywords
descriptor
command
virtual
channel number
page
Prior art date
Application number
KR1019880010104A
Other languages
English (en)
Other versions
KR890004230A (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 허니웰 뷸 인코오포레이티드
Publication of KR890004230A publication Critical patent/KR890004230A/ko
Application granted granted Critical
Publication of KR940003325B1 publication Critical patent/KR940003325B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/12Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
    • G06F13/124Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine
    • G06F13/126Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine and has means for transferring I/O instructions and statuses between control unit and main processor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Storage Device Security (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Error Detection And Correction (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Devices For Checking Fares Or Tickets At Control Points (AREA)

Abstract

내용 없음.

Description

가상 입력/출력 지령의 변환장치 및 방법
제1도는 데이타 처리 시스템의 전반적인 블록도.
제2a도 내지 제2e도는 입력/출력 지령의 포맷을 도시한 도면.
제3도는 가상 메모리 관리 및 중앙처리 장치의 부분 블록도.
제4도는 안전한 입력/출력 시스템의 레지스터 및 테이블들에 대한 블록도.
제5도는 가상 입력/출력 퍼엄웨어 실행에 대한 흐름도.
* 도면의 주요부분에 대한 부호의 설명
2 : 시스템 버스 4 : 중앙 서브시스템(CSS)
4-2 : CPU 0 4-4 : CPU 1
4-8 : VMMU 0 4-10 : VMMU 1
22 : Q 레지스터 38 : BP 버스
48 : ALU
본 발명은 데이타 처리 분야에 관한 것으로, 특히 좀더 안전한 입력/출력(I/O)시스템을 제공하는 장치에 관한 것이다.
여러 유저들을 서로 분리시키고, 유저를 오퍼레이팅 시스템으로부터 분리시키기 위해서는 데이타 처리 시스템은 보호를 필요로 한다. 보호란 컴퓨터 시스템의 자원이 대한 프로그램, 프로세스 혹은 유저의 액세스를 제어하기 위한 메카니즘을 말하는 것이다. 근본적으로 이 보호는 컴퓨터 시스템에 저장된 프로그램 및 데이타에 대한 액세스를 제어하는 요건인 내부문제이다.
컴퓨터 기밀 보호(security)는 적절한 보호 시스템을 요구하고, 그 컴퓨터가 동작하게 되는 외부 환경도 배려되어야 한다. 기밀 보호란 컴퓨터 시스템이 실행하는 정책에 따라 컴퓨터 시스템내의 주체(subject)에 의해 행해지는 객체(object)에 대한 액세스의 중재인 것이다. 확실성이란 시스템 및 그것의 데이타의 보전성이 유지될 확신의 정도이다.
안전 시스템들은 하기와 같은 성능을 가져야 한다.
1. 액세스 제어-컴퓨터를 액세스 하려는 사람/객체는 완전하고 신뢰성 있게 식별될 수 있다.
2. 프로세스 제어 보전성-사람/객체는 특정기능에 제한될 것이고, 유저 분리가 보장되어야 한다.
3. 시스템 기밀 보호의 위반은 검출될 수 있다.
4. 유저와 컴퓨터간의 메시지는 비밀이 유지되고 부당 조작이 방지될 수 있다.
5. 하드웨어와 소프트웨어는 부당 조작될 수 없도록 구성될 수 있다.
6. 시스템은 높은 신뢰도로 설계될 수 있다.
이러한 성능들중 대부분은 타 컴퓨터 시스템, 통상 메사추세츠“인스티튜트 오브 테크놀로지”에서 사용하는 멀틱스 시스템과“허니웰 시큐어 컴퓨니케이션즈 프로세서(SCOMP)”에서 발견될 수 있는 것들이다.
멀틱스는 기밀 보호를 위해 메모리내의 특권 링들에 프로세스를 기억시키고, 가상 번지 지정 방식을 이용한다. 그러나, 이 멀틱스 시스템은 가상 I/O 지령 시스템을 사용하므로써 특별히 얻어지는 기밀 보호의 장점을 이용하지 못하고 있다.
SCOMP 시스템도 기밀 보호를 위해 메모리의 특권 링에 프로세스를 기억시키고, 가상 번지 지정 방식을 이용하고 있다. 그러나, SCOMP도 가상 I/O 지령 시스템을 사용하므로써 특별히 얻어지는 기밀 보호의 장점을 이용하지 못하고 있다. 그러나, 이 SCOMP는 가상 I/O를 물리적 I/O로 변환시키기 위해 별도의 논리 보드들을 갖는다.
따라서, 본 발명의 목적은 훨씬 저렴하게 실행될 수 있고 성능이 개선된 기밀 보호 입력/출력(I/O)지령 시스템을 갖는 데이타 처리 시스템을 제공하고자 하는 것이다.
본 발명의 요지는 부착된 청구범위에 함축되어 있다. 전술한 본 발명의 목적 및 그 이외의 목적 및 장점 은 도면을 참조해서 기술되는 하기의 설명들로부터 이해될 수 있을 것이다.
본 발명은 시스템 버스에 실려 주변장치들로 보내지는 입력/출력 지령의 컴퓨터 시스템내에서의 다중 레벨 기밀 보호를 제공한다.
시스템 버스에 실려 전송되는 I/O 지령은 장치를 식별하는 물리적 채널 번호와 장치가 실행하게될 기능을 지정하는 기능 코드를 포함한다. 오퍼레이팅 시스템은 링 번호, 가상 채널 번호와 기능 코드를 포함하는 가상 I/O 지령을 생성한다.
퍼엄웨어는 가상 채널 번호를 물리적 채널 번호로 변환하기 전에 가상 I/O 지령에 대한 다수의 검사를 실행한다. 물리적 I/O 지령이 생성되기 전에 이루어지는 이러한 검사들은 다음의 단계를 포함한다.
a-유저가 이 프로세스에 대한 액세스 특권을 가졌는지 확인하는 단계.
b-IOLD 버퍼가 2KB 범위내에 있는지를 확인하는 단계.
c-디스크립터가 유효한 것인지 그리고 유저에게 장치에 대한 액세스를 허여하였는지를 확인하는 단계.
d-I/O 디스크립터의 가상 채널 번호 위치를 디스크립터를 함유한 페이지 테이블의 크기에 대해 확인하는 단계.
e-IOLD 데이타 버퍼가 시스템 소프트웨어에 의해 IOLD 버퍼로서 표시되었는지 확인하는 단계.
이것은 상기 확인 및 가상 어드레스의 물리적 어드레스로의 변환을 실행하기 위해 다수의 레지스터와 테이블을 사용하여 제어 기억 장치의 지정된 일부를 액세스하는 퍼엄웨어에 의해 수행된다.
오퍼레이팅 시스템은 메모리 디스크립터 및 장치 디스크립터의 트리를 생성하고, 이 데이타 구조정보에 대한 포인터를 디스크립터 세그멘트 베이스 레지스터내에 기억시킨다. 이 정보는 디스크립터 세그멘트 페이지 테이블의 베이스 어드레스를 지정한다. 가상 채널 번호의 고순위 비트값은 I/O 페이지 디스크립터 워드의 물리적 메모리 어드레스를 제공하기 위해 베이스 어드레스에 가산될 상수를 결정하는데 사용된다. I/O 페이지 디스크립터는 유효 비트, I/O 디스크립터 테이블의 크기 및 I/O 디스크립터 테이블의 베이스 어드레스를 포함한다. 가상 채널 번호는 I/O 디스크립터에 대한 인덱스로서 상기 베이스 어드레스에 가산된다.
I/O 디스크립터는 유효 비트, 판독 또는 기입 허가 비트, 링 브래킷 비트 및 물리적 채널 번호를 포함한다. 상기 퍼엄웨어는 유효 비트를 검사하고, 가상 I/O 지령이 적당한 판독 또는 기입 동작을 호출하는지를 확인하고, 가상 I/O 지령 링 번호에 대한 링 브래킷 비트들을 확인한다. 이러한 검사들이 모두 정확하게 실행되면, 물리적 채널 번호가 상기 지령내의 가상 채널 번호 대신 대체되고, 물리적 I/O 지령이 시스템 버스에 실려 전송된다.
각각의 유저를 위해 디스크립터 세그멘트 테이블과 I/O 디스크립터 테이블이 존재하며, 이 것은 오퍼레이팅 시스템이 유저의 특권을 쉽게 변경시키는 것을 가능하게 한다.
제1도는 멀티프로세싱 시스템을 도시한 것으로, 이 시스템은 분리 인터페이스에 의해 비동기성 시스템 버스(2)에 결합된 서브시스템을 다수개 포함한다.
이러한 서브시스템은 시스템 버스 인터페이스(SBI) (2-10)에 의해 시스템 버스(2)에 결합된 중앙 서브 시스템(CSS)(4)과 시스템 버스 인터페이스(2-l0A)에 의해 시스템 버스(2)에 결합된 CSS(4A)를 포함한다. 도면에는 CSS가 단지 2개만 도시되었지만, 각 인터페이스에 의해 시스템 버스(2)에는 여러개의 CSS가 결합될 수도 있다. 각 시스템 버스 인터페이스는 미합중국 특허 제3,995,258호의 제9도에 도시된 유형의 버스 인터페이스 논리 회로를 포함한다.
시스템 관리 설비(SMF)(20)는 시스템 버스 인터페이스(2-8)를 거쳐 시스템 버스(2)에 결합된다. 메모리(8)는 시스템 버스 인터페이스(2-2)를 거쳐 시스템 버스(2)에 결합된다.
다수의 주변 콘트롤러(14) 즉, 디스크 콘트롤러, 기록장치 콘트롤러, 마그네틱 테이프 콘트롤러, 통신 콘트롤러 및 이와 유사한 콘트롤러가 시스템 버스 인터페이스(2-4)와 유사한 시스템 버스 인터페이스들에 의해 시스템 버스(2)에 결합될 수 있다. 각 주변 콘트럴로(14)는 다수의 적절한 장치(18)에 결합된다.
각 CSS는 캐쉬, 제어 기억장치, 2개의 중앙처리장치(CPU) 및 각 가상 메모리 처리 유닛(VMMU)을 포함한다. CSS(4)는 VMMU 0(4-8)을 가진 CPU 0(4-2), VMMU 1(4-10)을 가진 CPU 1(4-4), 제어 기억 장치 (4-12)와 캐쉬(4-6)를 포함한다. 본 명세서에는 CPU를 이중으로 갖는 CSS가 기술되었지만, 본 발명은 한개의 CPU를 가진 시스템에도 사용가능하다.
서브시스템간의 모든 통신은 시스템 버스(2)에 지령을 보내고 어드레스된 서브시스템으로부터 응답을 수신하는 하나의 서브시스템에 의해 수행된다.
SMF(20)는 시스템(1)의 초기 설정 동작을 제어할 뿐만 아니라 다수의 시스템과 주변 기능들을 감시한다. 이 SMF(20)는 CPU들중 한 CPU로부터 시스템 버스(2)를 거쳐 수신된 지령에 의해 설정되는 워치독 타이머와 실시간 클록을 포함한다. 이 SMF(20)는 워치독 타이머가 시스템 버스(2)를 거쳐 클록을 처음에 세트시킨 CPU에 대응 지령을 보내는 것에 의해 0으로 감소될때 응답한다. 이외에도, SMF(20)는 전력 및 온도를 감시하고, 그 전력 또는 온도가 예정된 제한값을 초과하는 경우엔 상가 서브시스템을 교체한다. 이 SMF(20)의 동작은“마이크로프로세서 시스템용 시스템 처리장치”라는 명칭의 미합중국 출원번호 제869,164호에 개시되어 있다.
상기 시스템은 물리적 어드레스와 가상 어드레스를 지원한다. 대부분의 소프트웨어로부터 볼 수 있는 어드레스들은 가상 어드레스들이다. 상기 VMMU는 가상 어드레스를 물리적 어드레스로 변환한다. 이 물리적 어드레스들은 CPU가 캐쉬 또는 메모리를 어드레스 하는데 사용된다. 예컨대, CPU 0(4-2)는 BP 버스(38)를 거쳐 VMMU 0(4-8)에 가상 어드레스를 보내게 된다. VMMU 0는 가상 어드레스를 물리적 어드레스로 변환한 후 이 물리적 어드레스를 PA 버스(39)에 실어 캐쉬(4-6)와 메모리(8)에 보낸다. 만약 물리적 어드레스의 내용이 캐쉬(4-6)에 기억되어 있으면, 이것은 즉시 CPU 0(4-2)에 되돌려 질 것이나, 그렇지 않다면 물리적 어드레스를 포함한 지령은 시스템 버스 인터페이스(2-10), 시스템 버스(2) 및 시스템 버스 인터페이스(2-2)를 거쳐 메모리(8)로 보내진다. 물리적 어드레스 위치의 내용은 응답 지령에 의해 시스템 버스 인터페이스(2-2), 시스템 버스(2) 및 시스템 버스 인터페이스(2-10)를 거쳐 CPU 0(4-2)로 되돌려질 것이다.
오퍼레이팅 시스템 소프트웨어, CPU 및 VMMU 하드웨어, 가상 I/O 프로세싱으로 구성되는 기밀 보호 커널(security kernel)은 안전한 DPS6 PLUS 제품에 대한 기준 모니터의 구현이다. 이 기준 모니터는 하기의 3기밀 보호 요건을 충족시켜야만 하는 추상적인 개념이다.
1. 객체에 대한 주체의 완전한 중재
2. 분리
3. 확인
상기 완전한 중재 요건은 메모리에 대한 모든 요청을 중재하는 가상 메모리 관리 유닛에 의해 충족된다. 이 중재 절차도 액세스 허가 검사처리를 포함한다. 가상 I/O 퍼엄웨어도 이 요건의 일부분이다. 모든 I/O 지령들은 가상적이며. 어떤 액세스 허락 및 검사 처리를 근거로 허락된다.
상기 분리 요건은 기밀 보호 및 시스템 프로세싱을 유저 응용 프로세싱으로부터 분리시키는 하드웨어 링 구조부를 사용하는 것에 의해 충족된다. 이 특징도 기초가 되는 하드웨어와 펌웨어로 하여금 실행 도메인을 디스크립터 데이타 구조에서 허여되고 그 구조내에 포함되는 허가와 비교하게 하는 것에 의해 실행된다.
확인 요건은 공식 최고 레벨 명세서를 생성해서, 이것을 실행될 기밀 보호 정책의 공식 또는 비공식 수학적 모델과 비교하고 이 모델로 확인하는 것에 의해 충족된다. 사용된 이 모델은“Trusted Computer Security Evaluation Criteria”(DOD 5200.28-STD-1985년 12월)에 기재된 바와같이 얻어지는 검정 레벨에 따른다.
오퍼레이팅 시스템에 의해 생성된 I/O 지령은 가상 채널 번호와 링 번호를 포함한다. 퍼엄웨어는 링 번호와 지령의 유효성을 확인하고, 메모리(8)에 기억된 I/O 디스크립터 테이블과 관련해서 가상 채널 번호를 물리적 채널 번호로 변환한다. 물리적 채널 번호를 포함하는 I/O 지령은 시스템 버스(2)에 실려 발송된다. 자신의 물리적 채널 번호를 인지한 주변 서브시스템은 지령의 수신을 수리하고, 상기 지령의 기능 코드부에 의해 지정된 동작을 실행한다.
모든 CPU와 VMMU의 동작들은 제어 기억 장치(4-12)로부터 독출된 제어 기억 장치 워드의 선택된 비트에 의해 제어된다. 제어 기억 장치(4-12)는 가상 어드레스의 물리적 어드레스로의 변환을 포함하는 정상 CSS 동작을 제어하기 위한 A부와, 기존의 가상 메모리 시스템내의 가상 I/O의 실행을 제어하기 위한 B부로 나누어 진다.
가상 I/O 프로세싱은 시스템(1) 자원을 유저 도메인으로부터 분리하므로써 기밀 보호를 제공한다. 이것은 상기 I/O지령이 시스템 버스(2)에 실려 주변 서브시스템으로 전송되기 전에 필요한 허가 검사가 완료되는 것을 보증한다.
제2a도 내지 제2d도는 시스템 버스(2)를 통해 전송되는 I/O 지령을 도시한 것이다. 제2e도는 링 번호와 가상 채널 번호를 가진 가상 I/O 지령의 포맷과, 물리적 채널 번호를 가진 변환된 물리적 I/O 지령의 포맷을 도시한 것이다.
본 명세서 전반에 걸쳐“IO” 표시는 제2a, 제2b, 및 제2c도를 참조하기 바란다. 표시“I/O”는 제2a, 제2b, 제2c 및 제2d도를 참조하고, 즉 표시“I/O”는 IO와 IOLD를 포함한다.
제2a도는 CPU에 의해 생성된 IO출력 지령의 포맷을 나타낸 것이다.
시스템 버스(2)상의 신호들은 32 어드레스 신호들(0-23. A-H)과 32 데이타 신호들(0-31)을 포함한다. 또한, 다수의 제어 신호들(도시하지 않았음)도 포함한다. IO 출력 지령에 있어서, 어드레스 신호들 (8-17)은 분포된 서브시스템의 물리적 채널 번호를 지정하고, 어드레스 신호들(18-23)은 기능 코드를 지정한다. 데이타 비트들(0-31)은 채널 번호에 의해 지정된 서브시스템으로 전송될 정보를 지정한다. 상기 데이타 비트들은 기능 코드에 의해 지정된대로 실행된다.
제2b도는 장치의 채널 번호와 CPU에 의해 요청된 정보를 지정하는 기능 코드를 포함한 CPU에 의해 발생된 IO 입력 지령의 포맷을 도시한 것이다. 데이타 비트들(0-9)은 상기 지령을 생성시킨 CPU의 물리적 채널 번호를 지정한다. 데이타 비트들(16-31)은 장치에 대한 동작 정보를 지정한다.
제2c도는 IO 입력 지령에 대한 IO응답의 포맷을 도시한 것이다. 이제, 소스의 물리적 채널 번호는 행선 지의 물리적 채널 번호가 된다. 데이타 비트들(0-31)은 원지령의 기능 코드에 의해 요청되어진 정보를 지정한다. 제2b도의 소오스 채널 번호와 제2c도의 물리적 채널 번호에 대해 요구되는 가상대 물리적 채널 번호 변환이 전혀 없다.
제2d도는 입력/출력 로드(IOLD) 출력 지령의 2 사이클의 포맷을 도시한 것이다. 제1사이클은 블록 전송의 시작 메모리(8)의 어드레스를 지정하고 제2사이클은 블록내의 워드 범위 혹은 워드수를 지정한다.
16진의 기능 코드(09)는 32비트 어드레스가 16어드레스 비트(A-H, 0-7)와 16데이타 비트(0-15))에 의해 지정된다는 것을 나타내는 것을 주지하기 바란다. 16진의 기능 코드(OD)는 데이타 비트들(0-15)이 상기 범위를 지정하는 것을 나타낸다. 어드레스 비트들(8-17)은 2버스 사이클동안 동일한 장치의 채널 번호를 지 정한다.
제2e도는 가상 I/O 채널 번호 지령의 포맷과 전송된 물리적 I/O 채널 번호 지령의 포맷을 도시한 것이다. 어드레스 비트(8-17) (제2a, 제2b 및 제2d도에 도시됨)에 의해 지정된 물리적 채널 번호는 가상 채널 번호(2-8)와 방향(D) 비트가(9) 변환된 것이라는것을 주지하기 바란다. 나머지 어드레스와 데이타 비트들은 변환없이 전송된다.
I/O 채널 번호 범위는 16진 010에서 3FF까지이다. CPU 채널 번호 범위는 16진 000에서 00F까지이다. 통신 라인과 같은 전이중(full duplex) 장치들은 2개의 채널 번호를 이용하는데, 하순위 비트(D)는 2라인중 어느 하나, 즉 송신측 또는 수신측이 어드레스 되고 있다는 것을 식별한다.
가상 채널 범위는 커널-전용 I/O 디스크립터의 1페이지와 공유 I/O 디스크립터의 1페이지를 갖는 0-63까지이다. 액세스될 페이지는 가상 채널 번호의“비트” 2(MSB)에 의해 결정된다. 테이프 구동장치와 같은 반이중 장치들은 D비트를 사용하여, 이 비트가 논리 0일때 입력 동작을 나타내고 이 비트가 논리 1일때 출력 동작을 나타낸다.
카드 판도기와 같은 단방향성 장치들은 논리 0으로 세트되는 D비트(짝수 기능 코드)를 갖는다.
링 보호는 계층적 레벨 세트로 구성되는데 안쪽으로부터 0, 1, 2, … N-1로 번호가 매겨지는 N개의 동심원 세트로 구성될 수 있다. 원 0에 포함되는 메모리(8) 공간은 링 0으로 불리고, 원 1과 2 사이에 포함되는 메모리(8) 공간은 링(2)으로 불린다. 프로세스의 모든 세그멘트는 1개의 메모리(8) 링에 배치된다. 세그멘트가 원중심에 근접할 수록, 그 보호와 특권이 커진다. 매겨진 번호가 0, 1, 2 및 3인 링 4개가 CSS에 의해 지원되고, 그중 링 0이 최대의 특권을 갖고. 링 3은 최소의 특권을 갖는다.
I/O를 제외한 오퍼레이팅 시스템의 기밀 보호 커널(Security Kernel of the Operating System)는 링 0에 존재한다. 메모리 관리에 대한 프로세스 스케줄은 링 1에 존재한다. 위임된(trusted) 소프트웨어는 링 2에 존재한다. 위임된 소프트웨어는“기밀 보호 커널”에 의해 실시되는 기밀 보호 혹은 보전 특성중 하나를 위반할 수 있다. 위임된 소프트웨어는 높은 보전성을 필요로 하는 기능을 제공한다. 유저용 어플리케이션은 최소 특권인 링 3에 존재하고. 위임되지 않은 링 2 안전한 커널 인터페이스 팩키지 (Secure Kernel Interface Package)에 의해 지지된다. 응용 소프트웨어는 위임된 소프트웨어의 최상위에서 실행할 수 없다.
유저는 오퍼레이팅 시스템에 의해 분류된다. 이러한 분류는 일반, 비밀, 1급 비밀로 나누어진다. 이것은 특정 링들내의 프로세스에 대한 유저 액세스를 제공한다. 일급 비밀 등급을 가진 유저가 링 1을 액세스 하고, 비밀 등급을 가진 유저가 링 2를 액세스하고, 일반의 유저가 링 3을 액세스 한다고 가정하면, 하기와 같은 규칙이 적용된다. 유저는 판독할 수 없다. 즉, 링 2내의 프로세스에 대한 액세스가 가능한 비밀 등급을 가진 유저는 링 1 혹은 링 0에서 판독처리를 할 수 없다. 그리고 유저는 기입할 수 없다. 즉, 비밀 등급을 가진 유저는 링 3내에 프로세스를 기입할 수 없다.
절차는 링브래킷으로 불리는 3개의 링 번호 Rl, R2 및 R3와 관계가 있다. 만약 R3>R2이면 이 절차는 R3보다 크지 않은 링들이 액세스 가능하게 되어 링 R2에 대해 게이트된다. 만약 R2=R3이면 그 절차는 게이트가 아니다.
제3도에는 본 발명의 일부분이라 할 수 있는 VMMU와 CPU가 일부 도시되어 있다. CPU 0(4-2)와 CPU 1(4-4)뿐만 아니라 VMMU 0(4-8)와 VMMU 1(4-10)은 복제된 것임을 주지하기 바란다. 따라서 VMMU 0(4-8)와 CPU 0(4-2)는 본 발명을 설명하는데 이용될 것이다. 그러나, 본 발명은 VMMU 1(4-10)과 CPU 1(4-4)과도 마찬가지로 동일하게 동작할 수 있다.
CPU 0(4-2)의 레지스터 파일(46)은 64개의 32비트 레지스터를 포함한다. 이 레지스터의 기능은“단일 반도체 칩의 마이크로 프로세서”라는 명칭의 미합중국 출원 번호 제722,237호에 개시되어 있다. 또한, 디스크립터 세그멘트 베이스 레지스터도 포함하는데, 이 레지스터는 VMMU 0(4-8)와 VM-RAM(30)에서 복제된다.
BP 버스(38)로부터 수신된 오퍼랜드는 데이타-인 레지스터 (26)에 기억되고, B 버스(40), 연산 유닛(ALU) (48) 및 BI 버스(44) 흑은 시프터(24)와 BI 버스(44)를 통해 레지스터 파일(46)의 레지스터에 기억 된다. 연산 동작은 A 버스(42)상으로 1개의 오퍼랜드를 판독해내고 B 버스(40)상의 또다른 오퍼랜드을 판독한 후 2오퍼랜드를 각각 ALU(48) 입력에 공급하는 것에 의해 레지스터 파일(46)의 2오퍼랜드에 따라 실행된다.
ALU(48)는 제어 기억장치(4-12)의 신호들(도시되지 않았음)에 의해 지정된 연산 동작을 실행한다. 연산동작의 결과는 BI 버스(44) 또는 시프터와 BI 버스(44)를 거쳐 레지스터 파일(46)에 재기입된다.
32비트의 Q 레지스터(22)는 63비트 오퍼랜드를 처리하기 위한 ALU(48)의 확장으로서 동작한다. 이 Q 레지스터(22)도 2진 승산 및 제산 명령이 실행되는 동안 부분적 및 부분몫을 기어한다. 시프터 (24)는 통상의 32비트 시프트 동작들을 실행하기 위해 ALU(48)와 함께 동작한다. 시프터 (24)는 64비트의 시프트 동작을 실행하기 위해 Q 레지스터(22)와 ALU(48)와 함께 동작한다. 제어기억 장치 (4-12)로부터 출력된 제어 신호들(도시되지 않았음)은 레지스터 파일(66), ALU(48), 시프터(24), Q 레지스터(22) 및 데이타-인 레지스터 (26)의 모든 동작들을 제어한다.
VMMU 0(4-8)는 디코더 (32)를 포함하는데, 이 디코더(32)는 32비트의 가상 메모리 랜덤 액세스 메모리 (VM-RAM)(30)의 28위치들중 하나를 어드레스 하기 위해 제어 기억 장치(4-l2) 신호들을 수신한다. 본 발명의 DSBR(54)의 일부분은 VM-RAM(30)의 2위치에 기억된다. 정보는 BP 버스(38), BP 래치(36) 및 내부 버스(34)로부터 VM-RAM(30)으로 로드된다. 제어 신호들(도시되지 않았음)은 BP 래치(36)의 입력 및 출력을 제어한다.
제4도는 가상 I/O 지령을 제2e도에 도시된 바와같은 물리적 I/O지령으로 변환시키기 위한 논리 흐름도를 도시한 것이다.
오퍼레이팅 시스템은 어떤 유저가 장치를 액세스 할 수 있는가를 한정하는 각 장치에 대한 액세스 제어목록을 유지한다. 새로운 장치를 어드레스 할 필요가 있을때마다 오퍼레이팅 시스템은 액세스가 허여되었는지의 여부를 결정하기 위하여 목표 장치 목록을 검사한다. 액세스가 허여되면, 오퍼레이팅 시스템(50)은 메모리(8)의 기억위치에 기억된 가상 I/O 지령(52)을 생성하고, 또한 VM-RAM(30)내의 기억위치에 기억된 DSBR(54)에 다음 정보를 로드한다.
비트 0은, 세트된 경우, 새로운 스택이 사용될 것이고,“호출 및 복귀 명령”이 허락된 것을 나타낸다. 이 부분은 본 발명에 관한 것이 아니므로 더이상 설명하지 않겠다. 비트 1은, 세트된 경우, 가산 I/O 지령들 이 오퍼레이팅 시스템 (50)에 의해 생성된 것을 나타낸다.
비트들(4-23)은 메모리(8)내의 물리적 페이지 프레임 베이스 어드레스를 지정한다. 그러나, 비트들(24-31)은 디스크립터 세그멘트 페이지 테이블(56)이 모듈 4워드 경계에서 시작할 수 있도록 베이스 어드레스를 오프셋 한다.
디스크립터 세그멘트 페이지 테이블(56)은 정상의 가상 메모리 어드레스를 물리적 메모리 어드레스로 변환하는데 사용되는 4개의 페이지 디스크립터(PD0 내지 PD3)를 포함한다. 이 정상 동작도 IOLD 범위 지령의 프로세싱을 포함한다.
디스크립터 세그멘트 페이지 테이블(56)은 I/O 페이지 디스크립터(4)와 I/O 페이지 디스크립터(5)도 포함한다. 가상 채널 번호의 고순위 비트(가상 I/O 지령의 비트 2)의 상태는 I/O 페이지 디스크립터(4)의 위치를 설정하기 위해 16진의 8이 오프셋 베이스 어드레스에 가산된 것을 나타낸다. 16진 A는 I/O 페이지 디스크립터(5)의 위치를 설정하기 위해 오프셋 베이스 어드레스에 가산된다.
I/O페이지 디스크립터(4)는 64 I/O디스크립터 테이블(도시되지 않았음)을 지시하고, I/O페이지 디스크립터 (5)는 63 내지 127로서 식별된 64 I/O 디스크립터의 테이블을 지시한다. I/O 디스크립터는 I/O 페이지 디스크립터(5)에 의해 선택된 것들을 대표한다.
64개의 글로발 디스크립터와 64개의 로컬 디스크립터로 나누어지는 128개의 I/O 디스크립터가 존재하는데, 상기 글로발 디스크립터는 시스템 장치 디스크립터로 취급되며, 기밀 보호 커널로 하여금 커널 파일 시스템 장치들을 어떤 프로세스내에서 액세스 하게 하는데 사용된다. 로컬 디스크립터들은 상기 프로세스 전용으로 규정되고“기밀 보호 커널'에 의해 프로세스 어드레스 공간으로 맵프되는 유저 I/O 장치들과 결합 된다.
I/O 페이지 디스크립터 (5)내의 정보는 다음과 같다.
비트 0은 유효 I/O 페이지 디스크립터를 지시하는 유효 디스크립터(V)를 지정한다.
비트 1은 페이지가 액세스 되었음을 나타내는 사용된 지시기(U)를 지정한다.
비트 2는 페이지가 변경되었음을 나타낸 변경된 지시기 (M)를 지정한다.
비트 4-23는 I/O 디스크립터 테이블(58)의 물리적 페이지 프레임 번호 어드레스를 지정한다.
비트 26-30은 I/O 디스크립터 테이블(58)내의 가상 장치 디스크립터의 번호를 지정한다.
물리적 페이지 프레임 번호는 I/O 디스크립터 테이블(58)의 메모리(8) 베이스 어드레스를 지정한다. 가상 채널 번호 비트들(2-8)은 I/O 디스크립터 테이블(58)내의 I/O디스크립터를 지시한다.
I/O 디스크립터는 프로세스가 판독 혹은 기입 동작을 위한 장치에 대해 갖는 액세스 권한과 장치의 물리적 채널 번호를 한정한다. I/O 디스크립터에 존재하는 다른 정보는 다음과 같다.
비트 0에서, 유효 지시기(V)는 I/O 채널 고장(트랩 37)을 지시한다(0인 경우에).
비트 1에서, 판독하여 지시기(R)는 이 이트가“1”이고 프로세스가 R2보다 작거나 같은 링 번호에서 실행 되는 경우엔 판독 동작을 지정하는 IOLD 명령을 허락한다. 만약 이 액세스 검사가 충족되지 않으면, I/O 채널 액세스 고장(트랩 38)이 지시된다.
비트 2에서, 기입 보호 지시기(W)는 이 비트가“1”이고 프로세스가 Rl보다 작거나 동일한 링 번호에서 실행되는 경우엔 기입 동작을 지정하는 IOLD를 허락한다. 만약 이 액세스 검사가 충족되지 않으면, I/O 채널 액세스 고장이 지시된다.
IOLD 명령에 있어서, 비트들(4, 5)(Rl)은 이 장치의 매체를 위해 기입 브래킷의 최고 링 번호를 지정한다. 비트들(6, 7)(R2)은 이 장치를 위해 판독 브래킷의 최고 링 번호를 지정한다.
I/O 명령에 있어서, 비트들(4, 5)(Rl)은 이 장치를 위해 제어 브래킷의 최고 링 번호를 지정한다.
비트(16-22)은 0이어야 하고, 비트들(23-31)과 가상 채널 번호의 원 방향 비트(D)는 I/O 장치의 물리적 채널 번호를 형성하고 지령이 판독 지령인지 또는 기입 지령인지를 결정한다.
DSBR(54)은 각 유저용의 독특한 프레임 번호와 오프셋으로 로드된다. 그러므로 DSBR 비트들(4-31)은 독특한 디스크립터 세그멘트 페이지 테이블(56)을 지시한다. 디스크립터 세그멘트 페이지 테이블(56)은 유저의 수만큼 존재한다. 그리고 각 유저용의 독특한 프로세스 디스크립터 세그멘트(60)도 존재한다.
시스템(1)의 총 메모리 크기는 물리적 메모리의 16메가 바이트까지 이며, 가상 메모리의 2기가 바이트까지이다. 메모리(S)는 물리적 메모리 바이트를 기억하고 다수의 대용량 기억 장치들은 가상 메모리 바이트들을 기억한다.
세그멘트 크기는 2메가 바이트까지 일 수도 있다. 프로세스는 1024 세그멘트까지도 포함할 수 있다. 페이지는 1세그멘트당 1024페이지를 가지는 2K 바이트를 포함한다. 가상 어드레스는 10비트 세그멘트 번호와 20비트 변위로서 표현되며, 이 20비트 변위는 DSBR(54)의 내용 및 후속 테이블들과 관련하여 요구된 더블워드의 메모리(8)의 물리적 어드레스(30비트들)을 생성한다.
프로세스의 모든 디스크립터들을 포함하는 독특한 프로세스 디스크립터 세그멘트에 있어서, 디스크립터 세그멘트 페이지 테이블(56)은 세그멘트 디스크립터(SD)(0-255)를 지시하는 디스크립터 PD 0. SD(256-511)을 지시하는 PD 1, SD(512-767)을 지시하는 PD 2, SD(768-1023)을 지시하는 PD 3를 포함한다.
PD 0 내지 PD 3은 각각 그들 각각의 세그멘트 디스크립터 테이블을 지시한다. 세그멘트 디스크립터 테이블의 내용이 페이지식이면 페이지 디스크립터들의 테이블을 지시하는 것이다. 이 페이지 테이블은 주메모리(8)내의 물리적 어드레스를 포함하는 디스크립터를 기억하는데, 이 물리적 어드레스는 오퍼레이팅 시스템에 의해 생성된 가상 어드레스에 해당한다. 이것은 가상 메모리 어드레스들을 물리적 메모리 어드레스들로 변환하기 위한 정상 시스템 동작이다.
정상 동작중에 제2d도의 IOLD 범위 지령은 다음과 같이 처리된다.
디스크립터 세그멘트 페이지 테이블(56)의 선택된 페이지 디스크립터, 예컨대 PD 1은 프로세서 디스크립터 세그멘트(60)의 페이지 번호와 함께 로드된다. 각 프로세서 디스크립터 세그멘트(60)는 페이지당 256 세그멘트 디스크립터들을 포함한다. 유효(V) 비트 0에 부가하여, 비트 1은 특권 지시기 (PR)이다. 세트된 경우는 특권 명령 실행이 링 0에서만 허락된다. 만약 세트되지 않았으면, 특권 명령들은 허여되지 않고 그리고 특권 명령이 발생된 경우에는 트랩(13)이 호출된다. IOLD(20) 비트 2가 세트되면, 이것은 직접 메모리 액세스(DMA) 전송을 위한 IOLD 버퍼 세그멘트라는 것을 의미한다. 만약 세트되지 않았으며, IOLD 명령이 실행되어 이 세그멘트를 지정한다면, 보호된 메모리 트랩(14)이 호출된다.
프로세서 디스크립터 세그멘트(60)의 페이지 번호 비트들(4-22)과 오프셋 비트들(23-31)은 1024개의 32비트 페이지 디스크립터를 기억하는 IOLD 버퍼 세그멘트 페이지 테이블(62)의 선택된 페이지 디스크립터 (PDX)를 지시한다.
비트 0, 1 및 2(V, U 및 X)는 앞에서 기술한 바 있다. IOLD 버퍼 세그멘트 페이지 테이블(62)의 페이지 번호 비트(4-23)은 메모리(8)내의 IOLD 버퍼 세그멘트 페이지 프레임(64)을 지시한다. 최대 버퍼 페이지 크기는 상기 IOLD 버퍼 세그멘트 페이지 테이블(62)의 페이지 번호가 페이지 프레임(64)의 베이스 어드레스를 지시하는 경우엔 2048 바이트가 된다. 만약 베이스 어드레스가 오프셋에 의해 증가되면, 그 범위는 페이지 중복이 허락되지 않기 때문에 2048 바이트 보다 작게 된다.
가상 I/O가 물리적 I/O로 전환되는 유저를 위한 제1변환주기 동안에 디스크립터 세그멘트 페이지 테이블(56)의 일부 내용과 I/O 디스크립터 테이블(58)의 일부 내용이 캐쉬(4-6)로 보내진다. 동일한 유저용으로 요구된 후속하는 I/O 지령 변환은 메모리(8)의 늦은 속도가 아닌 캐쉬(4-6)의 속도로 수행될 수도 있다.
제5도의 설명을 위해 제2a도 내지 제2c도의 지령들은 IO 지령으로 칭하고, 제2d도의 지령은 IOLD 지령으로 칭한다. 퍼엄웨어는 하나의 IOLD 지령으로서 2사이클의 IOLD 지령을 처리할 것이다. 그리고 기호I/O는 IO 및 IOLD 둘다를 언급한다.
제5도는 가상 I/O 퍼엄웨어 실행에 대한 흐름도를 도시한 것이다. CPU 0(4-2)는 소프트웨어 명령들을 실행하고, 가상 I/O 채널 번호를 물리적 I/O 채널 번호로 변환시키기 위해 제어 기억장치(4-13)의 B부분을 어드레스 한다.
프로그램은 판단 블록(72)에서 DSBR(54)의 비트 1의 내용을 검사한 후, 가상 I/O 동작이 아니면 블록(74)으로 진행한다. 이 판단 블록은 레지스터 파일(46) (제3도)로 정보를 전송하고, ALU(48)와 시프터(24)에서 호출된 동작들을 실행하고 퍼엄웨어에 유용한 경우 그 결과를 레지스터 파일(46)에 되돌려 보내는 것에 의해 실행된다. 이것은 제어 기억 장치(4-12)로부터 출력된 신호들에 의해 수행된다. 블록(74)은 물리적 채널 번호를 가진 지령을 해석하고, CPU(4-2)로 하여금 상기 지령을 시스템 버스(2)에 실어 전송하게 한다. 한편, 판독 블록(76)은 CPU 0(4-2)가 실행하고 있는 메모리에서 I/O 명령의 현재 링 번호의 비트 0와 비트 1을 판독한다. 만약 상기 명령이 특권 명령이 아니면 즉. 링 0 또는 1의 명령이 아니면, 블록(78)은 이 프로세서를 중지하도록 오퍼레이팅 시스템에게 알리기 위해 트랩(13)을 호출한다.
한편 블록(80)은 디스크립터 세그멘트 페이지 테이블(DSPT) (56)의 I/O 페이지 디스크립터들(4 또는 5)의 메모리(8)내의 위치를 산출한다. 이것은 CPU 0(4-2)가 가상 채널 번호(비트 2)의 고순위 비트의 상태에 따라 16진 8 또는 16진 A에 베이스 어드레스(디스크립터 세그멘트 베이스 레지스터(54)의 비트(4-31))를 가산하므로써 처리된다.
블록(82)은 메모리 (8)의 위치로부터 I/O 페이지 디스크립터를 페치 (인출)하고, CPU 0(4-2)의 작업 레지스터 즉, 레지스터 파일(46)에 기억시킨다.
판단 블록(84)의 I/O 페이지 디스크립터의 유효(V) 비트 0를 검사한다. 유효 비트가 참 값이면, 페이지가 메모리(8)에 존재하는 것을 의미한다. 만약 참값이 아니면, 페이지 고장이 발생한 것으로 오퍼레이팅 시스템에게 상기 페이지를 메모리(8)에 명령한다. 이 페이지는 일반적으로 디스크 서브시스템에 존재한다. 블록(86)은 하드웨어에 의해 실행되는 기준 페이지 고장 루틴을 호출한다.
한편, 블록(88)은 CPU 0(4-2)의 작업 레지스터 즉. 레지스터 파일(46)에 상기 디스크립터 세그멘트 페이지 테이블(56)로부터의 I/O 페이지 디스크립터를 기억시킨다. I/O 디스크립터의 메모리(8)의 위치는 가상 채널 번호를 I/O 페이지 디스크립터의 물리적 페이지 프레임 번호에 가산하는 것에 의해 발생된다.
판단 블록(90)은 상기 디스크립터 테이블(58)이 가상 채널 번호를 수용할 수 있는지를 확인하기 위해 I/O 페이지 디스크립터에 기억된 테이블 크기와 가상 채널 번호를 비교한다. 가상 채널 번호가 이 크기보다 큰 경우에, 블록(92)은 가상 채널 번호 경계 고장을 지시하는 트랩(37)을 호출한다.
I/O 디스크립터 테이블(58)이 훨씬 큰 경우엔, 블록(94)은 메모리(8)로부터 I/O 디스크립터를 페치하고, 이것을 CPU 0(4-2)의 작업 레지스터, 즉 레지스터 파일(46)에 기억시킨다.
판단 블록(96)은 I/O 디스크립터의 유효(V) 비트 0을 검사하고. 이 비트가 I/O 고장 트랩 번호(37)를 지시하기 위해 리세트 되는 경우엔 블록(98)으로 분지한다.
한편, 블록(100)은 가상 I/O 지령의 링 비트 0과 링 비트 1로 부터 Reff를 산출해 낸다.
Reff는 IOLD 또는 I/O 지령을 형성하는 지령을 기억하는 링들의 최대값(최소의 특권)이다.
판독(101)은 지령을 초기화했던 메모리(8)내의 명령의 OP 코드 필드를 검사하므로써 가상 I/O 지령이 IO 지령 (제2a도, 제2b도 또는 제2c도)인지 IOLD 지령(제2d도)인지를 판단한다. 만약 상기 명령이 IO 지령을 호출하면, 판단 블록(103)은 I/O 디스크립터내의 Rl에 대한 Reff값을 검사한다. 만약 Reff값이 Rl 보다 크면, 블록(105)은 트랩(38)의 I/O 액세스 고장 동작을 초기화 한다. 만약 Reff값이 Rl보단 크면, 블록(105)은 트랩(38)의 I/O 액세스 고장 동작을 초기화 한다, 만약 Reff가 Rl보다 작거나 같으면 퍼엄웨어는 블록(118)으로 분지하여, 가상 채널 번호를 I/O 디스크립터 테이블(58)의 I/O 디스크립터의 물리적 채널 번호로 대치시킨다.
판단 블록(102)은 가상 I/O 지령의 D 비트(9)를 검사한다 만약 비트(9)가 장치 입력 지령을 지시하면, 판단 블록(108)은 I/O 디스크립터의 R 비트(1)이 세트되었는지의 여부와 Reff가 I/O 디스크립터의 R2 비트(6 및 7)보다 작거나 같은지의 여부 검사한다. 만약“예”이면, 블록(110)은 수정(M) 비트(비트 2)를 IOLD 버퍼 페이지 디스크립터에 세트시킨다. 만약“아니오”이면, 블록(106)은 퍼엄웨어 액세스 검사 처리를 통해 액세스 고장 트랩 (38)을 호출한다.
만약 판단 블록(102)이 가상 IOLD 지령의 D 비트 상태를 검사하므로써 장치 출력 지령을 지시하면, 판단 블록(104)은 I/O 디스크립터의 W 비트가 세트되었는지 여부와, Reff값이 I/O 디스크립터의 R1 비트(4 및 5)보다 작거나 같은지의 여부를 검사한다. 한편, 블록(106)은 트랩(38)을 생성한다.
블록(110)의 I/O 페이지 디스크립터의 수정(M) 비트(비트 2)를 세트시킨다.
판단 블록(112)은 프로세서 디스크립터 세그멘트(PDS) (60)내의 IOLD 버퍼용 세그멘트 디스크립터의 I/O 비트(2)가 세트되었는지의 여부를 검사한다. 만약 세트되지 않았으면, 블록(114)은 보호 위반 트랩(14) 루틴을 호출한다. 한편, 판단 블록(116)은 정수“2048”와 제2d도의 범위중 데이타 필드 비트들(0-15), 즉 제2사이클을 비교하므로써 IOLD 버퍼 크기가 2048 바이트 보다 작거나 큰지를 검사한다. 이 범위가 페이지를 크로스시키지 않을 것이라는 것을 보장하기 위해, 퍼엄웨어는 제2d도의 범위와 오프셋이 2048보다 크지 않다는 것을 검사한다. 이 오프셋은 정상의 가상 어드레스의 물리적 어드레스로의 변환동안 계산된다. 둘중 한 검사가 실패하면, 블록(114)은 보호 위반 트랩(14)루틴을 호출한다
만약 두 검사가 성공적이면, 블록(118)은 가상 I/O 지령의 가상 채널 번호를 I/O 디스크립터내에 포함된 물리적 채널 번호로 대치시킨다.
그다음, 상기 퍼엄웨어는 블록(74)으로 분지하고, IO 또는 IOLD 지령들이 정상 지령으로서 처리되되, 어떤 정상 지령처럼 시스템 버스(2) (제1도)에 결합된 서브시스템에 의해 처리된다.
본 발명이 양호한 일실시예로 기술되었지만, 본 기술 분야에 숙련된 자에 의해 본 발명의 의의 및 범주를 일탈하지 않는 한도내에서 변경이 가해질 수도 있다.

Claims (2)

  1. 가상 I/O 지령을 물리적 I/O 지령으로 변환시키는 장치에 있어서, 장치를 식별하는 가상 채널 번호를 포함한 가상 I/O 지령을 기억하기 위한 제1수단과 ; 유저를 식별하는 디스크립터 세그멘트를 기억하기 위한 제2수단과 ; 상기 제1수단에 연결되어 상기 제1수단에 기억된 상기 가상 채널 번호의 제1부분에 응답하여, 상기 제2수단에 연결되어 상기 제2수단에 기억된 유저를 식별하는 상기 디스크립터 세그멘트에 응답하여, 상기 유저가 사용 가능한 장치들을 식별하는 I/O 페이지 디스크립터의 위치를 설정하기 위한 제1테이블 수단과 ; 상기 제1수단과 상기 제1테이블 수단에 연결되어 상기 가상 채널 번호와 상기 I/O 페이지 디스크립터에 응답하여 상기 장치를 식별하는 물리적 채널 번호를 포함한 I/O 디스크립터의 위치를 설정하기 위한 제2테이블 수단과 ; 상기 제1수단과 상기 제2테이블 수단에 연결되고, 상기 유저 디스크립터를 통해 장치에 대한 유저 액세스를 결정하고 상기 I/O 디스크립터를 통해 가상 I/O 지령 동작을 결정하는 것에 의해 유저 특권을 확인하기 위한 비교 수단을 포함하고, 그 유저 특권의 확인에 응답하여 상기 가상 채널 번호를 상기 물리적 채널 번호로 대체시켜 물리적 I/O 지령을 생성시키는 제3수단을 구비하는 것을 특징으로 하는 가상 I/O 지령을 물리적 I/O 지령으로 변환하는 장치.
  2. 가상 I/O 지령이 제1레지스터(52)에 입력되고. 상기 지령이 가상 채널 번호와 그 지령을 나타내는 프로세서의 유저 특권(링번호)을 포함하며, 상기 유저에 독특한 세그멘트 디스크립터가 제2레지스터(54)에 입력되는 시스템에서 가상 I/O 지령을 물리적 I/O 지령으로 변환하는 방법에 있어서, 상기 디스크립터가 한 그룹의 페이지 디스크립터를 유지하는 기억 장치내의 위치의 베이스 어드레스를 포함하는데, 상기 제2레지스터내에 유지되는 상기 베이스 어드레스와 상기 제1레지스터내에 유지되는 상기 가상 채널 번호의 일부를 결합하여 상기 페이지 디스크립터들중 특별한 하나의 기억장치내에서의 어드레스를 결정하는 단계와 ; 상기 하나의 페이지 디스크립터를 인출하기 위해 상기 기억 장치를 액세스하도록 상기 하나의 페이지 디스크립터의 어드레스를 이용하는 단계와 ; 상기 하나의 페이지 디스크립터의 일부와 상기 제1레지스터내에 유지되는 상기 가상 채널 번호를 결합하여 특별한 I/O 디스크립터(58)의 상기 기억장치내에서의 어드레스를 결정하는 단계와, 상기 특별한 I/O 디스크립터를 인출하기 위해 상기 특별한 I/O 디스크립터의 어드레스를 이용하는 단계를 포함하는데, 상기 I/O 디스크립터는 상기 특별한 I/O 디스크립터를 이용하도록 허여된 프로세서의 요구된 특권(링번호)의 표시를 포함하고, 상기 I/O 디스크립터에 포함된 표시로부터 결정된 요구된 특권과 상기 지령에 함유된 유저 특권을 비교하는 단계와 ; 상기 유저 특권이 상기 요구된 특권에 의해 허여되는 특권 범위내에 있을 경우, 상기 I/O 디스크립터내에 포함된 물리적 채널 번호를 이용하여 물리적 I/O 지령을 발생시키는 단계를 포함하는 것을 특징으로 하는 가상 I/O 지령을 물리적 I/O 지령으로 변환하는 방법.
KR1019880010104A 1987-08-07 1988-08-07 가상 입력/출력 지령의 변환장치 및 방법 KR940003325B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/083,534 US4858117A (en) 1987-08-07 1987-08-07 Apparatus and method for preventing computer access by unauthorized personnel
US083,534 1987-08-07

Publications (2)

Publication Number Publication Date
KR890004230A KR890004230A (ko) 1989-04-20
KR940003325B1 true KR940003325B1 (ko) 1994-04-20

Family

ID=22178948

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019880010104A KR940003325B1 (ko) 1987-08-07 1988-08-07 가상 입력/출력 지령의 변환장치 및 방법

Country Status (15)

Country Link
US (1) US4858117A (ko)
EP (1) EP0306702B1 (ko)
JP (1) JPH0199147A (ko)
KR (1) KR940003325B1 (ko)
CN (1) CN1014841B (ko)
AU (1) AU611468B2 (ko)
CA (1) CA1315007C (ko)
DE (1) DE3889816T2 (ko)
DK (1) DK439088A (ko)
ES (1) ES2053640T3 (ko)
FI (1) FI883566A (ko)
IL (1) IL87295A (ko)
MX (1) MX166611B (ko)
NO (1) NO174528B (ko)
YU (1) YU151988A (ko)

Families Citing this family (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA1314108C (en) * 1988-03-18 1993-03-02 Robert P. Ryan Distributed reference and change table for a virtual memory system
US5063496A (en) * 1988-06-01 1991-11-05 International Business Machines Corporation Signaling attempted transfer to protected entry point bios routine
JP2776841B2 (ja) * 1988-09-28 1998-07-16 株式会社日立製作所 ディスク制御装置におけるディスクアクセス制御方法
US4984272A (en) * 1988-11-30 1991-01-08 At&T Bell Laboratories Secure file handling in a computer operating system
US5117491A (en) * 1989-03-31 1992-05-26 Bull Hn Information Systems Inc. Ring reduction logic using parallel determination of ring numbers in a plurality of functional units and forced ring numbers by instruction decoding
DE69029759T2 (de) * 1989-05-15 1997-07-17 International Business Machines Corp., Armonk, N.Y. Flexible Schnittstelle für Beglaubigungsdienste in einem verteilten Datenverarbeitungssystem
US5469556A (en) * 1989-12-12 1995-11-21 Harris Corporation Resource access security system for controlling access to resources of a data processing system
US6507909B1 (en) 1990-02-13 2003-01-14 Compaq Information Technologies Group, L.P. Method for executing trusted-path commands
US5574912A (en) * 1990-05-04 1996-11-12 Digital Equipment Corporation Lattice scheduler method for reducing the impact of covert-channel countermeasures
US5315657A (en) * 1990-09-28 1994-05-24 Digital Equipment Corporation Compound principals in access control lists
US5253344A (en) * 1991-09-05 1993-10-12 International Business Machines Corp. Method and apparatus for dynamically changing the configuration of a logically partitioned data processing system
US5432934A (en) * 1993-07-26 1995-07-11 Gensym Corporation Access restrictions as a means of configuring a user interface and making an application secure
US6289390B1 (en) 1993-08-18 2001-09-11 Microsoft Corporation System and method for performing remote requests with an on-line service network
US5603059A (en) * 1994-04-22 1997-02-11 Pitney Bowes Inc. Software architecture system having a virtual I/O channel including multi-layered communication interface in between virtual stations and physical modules
US5774668A (en) * 1995-06-07 1998-06-30 Microsoft Corporation System for on-line service in which gateway computer uses service map which includes loading condition of servers broadcasted by application servers for load balancing
US6901433B2 (en) * 1995-06-07 2005-05-31 Microsoft Corporation System for providing users with a filtered view of interactive network directory obtains from remote properties cache that provided by an on-line service
US5933599A (en) * 1995-07-17 1999-08-03 Microsoft Corporation Apparatus for presenting the content of an interactive on-line network
US5941947A (en) * 1995-08-18 1999-08-24 Microsoft Corporation System and method for controlling access to data entities in a computer network
US5956509A (en) 1995-08-18 1999-09-21 Microsoft Corporation System and method for performing remote requests with an on-line service network
US5875352A (en) * 1995-11-03 1999-02-23 Sun Microsystems, Inc. Method and apparatus for multiple channel direct memory access control
JP2982702B2 (ja) * 1996-08-30 1999-11-29 日本電気株式会社 ディスク装置
US6105132A (en) * 1997-02-20 2000-08-15 Novell, Inc. Computer network graded authentication system and method
US5961626A (en) * 1997-10-10 1999-10-05 Motorola, Inc. Method and processing interface for transferring data between host systems and a packetized processing system
FR2770918B1 (fr) * 1997-11-07 1999-12-10 Gemplus Card Int Procede de gestion securise d'une memoire
EP0944257A1 (en) * 1998-03-06 1999-09-22 CANAL+ Société Anonyme Multimedia terminal adapted for multiple users
US7305451B2 (en) * 1998-08-24 2007-12-04 Microsoft Corporation System for providing users an integrated directory service containing content nodes located in different groups of application servers in computer network
US7343441B1 (en) * 1999-12-08 2008-03-11 Microsoft Corporation Method and apparatus of remote computer management
US6990579B1 (en) * 2000-03-31 2006-01-24 Intel Corporation Platform and method for remote attestation of a platform
US7082615B1 (en) * 2000-03-31 2006-07-25 Intel Corporation Protecting software environment in isolated execution
US6714930B1 (en) 2000-05-31 2004-03-30 International Business Machines Corporation Lightweight directory access protocol, (LDAP) trusted processing of unique identifiers
US7065610B1 (en) * 2000-06-27 2006-06-20 Emc Corporation Method and apparatus for maintaining inventory of logical volumes stored on storage elements
US6978324B1 (en) * 2000-06-27 2005-12-20 Emc Corporation Method and apparatus for controlling read and write accesses to a logical entity
US7036122B2 (en) * 2002-04-01 2006-04-25 Intel Corporation Device virtualization and assignment of interconnect devices
AU2004272083B2 (en) * 2003-09-12 2009-11-26 Emc Corporation System and method for risk based authentication
DE10353210A1 (de) * 2003-11-13 2005-06-16 Siemens Ag Sichere Erfassung von Eingabewerten
EP1756995A4 (en) * 2004-05-21 2012-05-30 Emc Corp SYSTEM AND METHOD FOR REDUCING FRAUD
JP4499008B2 (ja) * 2005-09-15 2010-07-07 富士通マイクロエレクトロニクス株式会社 Dma転送システム
US7682577B2 (en) 2005-11-07 2010-03-23 Geo2 Technologies, Inc. Catalytic exhaust device for simplified installation or replacement
US7682578B2 (en) 2005-11-07 2010-03-23 Geo2 Technologies, Inc. Device for catalytically reducing exhaust
US7722828B2 (en) 2005-12-30 2010-05-25 Geo2 Technologies, Inc. Catalytic fibrous exhaust system and method for catalyzing an exhaust gas
JP5285969B2 (ja) * 2008-06-11 2013-09-11 シロキ工業株式会社 ドアロック装置
US7530106B1 (en) 2008-07-02 2009-05-05 Kaspersky Lab, Zao System and method for security rating of computer processes
US10620687B2 (en) * 2014-12-22 2020-04-14 Intel Corporation Hybrid power management approach
US10489335B1 (en) * 2018-09-28 2019-11-26 Silicon Motion, Inc. Apparatus and method and computer program product for accessing a memory card

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB1329721A (en) * 1970-05-26 1973-09-12 Plessey Co Ltd Data processing devices
US4092715A (en) * 1976-09-22 1978-05-30 Honeywell Information Systems Inc. Input-output unit having extended addressing capability
US4084227A (en) * 1976-09-24 1978-04-11 Sperry Rand Corporation Virtual address translator
US4155119A (en) * 1977-09-21 1979-05-15 Sperry Rand Corporation Method for providing virtual addressing for externally specified addressed input/output operations
US4320456A (en) * 1980-01-18 1982-03-16 International Business Machines Corporation Control apparatus for virtual address translation unit
US4419728A (en) * 1981-06-22 1983-12-06 Bell Telephone Laboratories, Incorporated Channel interface circuit providing virtual channel number translation and direct memory access
JPS58195230A (ja) * 1982-05-10 1983-11-14 Hitachi Ltd チヤネル制御装置

Also Published As

Publication number Publication date
NO883493D0 (no) 1988-08-05
CA1315007C (en) 1993-03-23
FI883566A0 (fi) 1988-07-29
IL87295A0 (en) 1989-01-31
JPH0578858B2 (ko) 1993-10-29
AU2052288A (en) 1989-02-09
CN1033119A (zh) 1989-05-24
NO174528B (no) 1994-02-07
NO883493L (no) 1989-02-08
YU151988A (en) 1991-08-31
EP0306702A2 (en) 1989-03-15
KR890004230A (ko) 1989-04-20
NO174528C (ko) 1994-05-18
DE3889816D1 (de) 1994-07-07
AU611468B2 (en) 1991-06-13
EP0306702B1 (en) 1994-06-01
IL87295A (en) 1992-05-25
EP0306702A3 (en) 1990-08-29
DK439088A (da) 1989-02-08
MX166611B (es) 1993-01-21
DE3889816T2 (de) 1995-01-19
DK439088D0 (da) 1988-08-05
US4858117A (en) 1989-08-15
CN1014841B (zh) 1991-11-20
JPH0199147A (ja) 1989-04-18
ES2053640T3 (es) 1994-08-01
FI883566A (fi) 1989-02-08

Similar Documents

Publication Publication Date Title
KR940003325B1 (ko) 가상 입력/출력 지령의 변환장치 및 방법
US4959860A (en) Power-on password functions for computer system
TWI705353B (zh) 用於容許安全通訊之積體電路、方法及製造物件
US5469556A (en) Resource access security system for controlling access to resources of a data processing system
US4942606A (en) Computer with improved keyboard password functions
JP4295111B2 (ja) メモリ管理システム及び線形アドレスに基づいたメモリアクセスセキュリティ付与方法
EP0115877B1 (en) Critical system protection
US7277972B2 (en) Data processing system with peripheral access protection and method therefor
US20030101440A1 (en) Multiple virtual machine environment management system
US20030226014A1 (en) Trusted client utilizing security kernel under secure execution mode
CN103842976A (zh) 具有保护模式以防止i/o装置进行存储器访问的输入/输出存储器管理单元
MX2012014534A (es) Espacios de multiples direcciones por adaptador.
US5900019A (en) Apparatus for protecting memory storage blocks from I/O accesses
US5724551A (en) Method for managing I/O buffers in shared storage by structuring buffer table having entries include storage keys for controlling accesses to the buffers
JP4945053B2 (ja) 半導体装置、バスインターフェース装置、およびコンピュータシステム
KR101001344B1 (ko) 구획된 보안을 위한 입/출력 허가 비트맵
CN116583840A (zh) 快速外围部件互连保护控制器
JP2000276397A (ja) 単純高性能メモリ管理ユニット
JP2005512228A (ja) 強化されたメモリアクセスセキュリティを提供する、メモリに対するデバイスのアクセスを制御するシステムおよび方法
US4991083A (en) Method and system for extending address space for vector processing
KR100972635B1 (ko) 컴퓨터 시스템내에서의 장치간 액세스를 제어하는 시스템및 방법
US5802397A (en) System for storage protection from unintended I/O access using I/O protection key by providing no control by I/O key entries over access by CP entity
US20240143851A1 (en) Computing system and trusted computing method
JP2535086B2 (ja) リング削減ロジック装置
JPS62274445A (ja) マイクロ・コンピユ−タ・システムにおける特権保護方式

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
G160 Decision to publish patent application
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 19990414

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee