KR20060135757A - Isolated multiplexed multi-dimensional processing in a virtual processing space having virus, spyware, and hacker protection features - Google Patents

Isolated multiplexed multi-dimensional processing in a virtual processing space having virus, spyware, and hacker protection features Download PDF

Info

Publication number
KR20060135757A
KR20060135757A KR1020067016384A KR20067016384A KR20060135757A KR 20060135757 A KR20060135757 A KR 20060135757A KR 1020067016384 A KR1020067016384 A KR 1020067016384A KR 20067016384 A KR20067016384 A KR 20067016384A KR 20060135757 A KR20060135757 A KR 20060135757A
Authority
KR
South Korea
Prior art keywords
data
processing
processing logic
computing environment
storage device
Prior art date
Application number
KR1020067016384A
Other languages
Korean (ko)
Inventor
케네스 라즈맨
안소니 비. 모어
제프리 블레어
Original Assignee
버2어스, 인코포레이티드
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
Priority claimed from US10/760,131 external-priority patent/US7392541B2/en
Priority claimed from US11/022,290 external-priority patent/US20100005531A1/en
Application filed by 버2어스, 인코포레이티드 filed Critical 버2어스, 인코포레이티드
Publication of KR20060135757A publication Critical patent/KR20060135757A/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements

Abstract

Information appliance, computing device, or other processor or microprocessor based device or system provides security and anti-viral, anti-hacker, and anti-cyber terror features, and can automatically create multiple sequentially or concurrently and intermittently isolated and/or restricted computing environments to prevent viruses, malicious or other computer hacking, computer or device corruption and failure by using these computing environments in conjunction with restricted and controlled methods of moving and copying data, combined with a process that destroys malicious code located in computing environments and data stores. Time multiplexed processing streams (2956) with system, device, architecture and method for maintaining isolation of multiple processes executing in single physical processor. Virtual multi-dimensional processing space (2955) and virtual processing environments (2951-2954). Temporally multiplexed processing in a single CPU. Process isolation (2943) using address control and mapping. Selecting, configuring, switching, and/or multiplexing multiple processes in physical and/or virtual processing or computing spaces to create physical and/or virtual processing or computing environments.

Description

바이러스, 스파이웨어, 및 해커 보호 특성을 갖는 가상 처리 공간에서의 분리된 멀티플렉싱 다차원 처리{ISOLATED MULTIPLEXED MULTI-DIMENSIONAL PROCESSING IN A VIRTUAL PROCESSING SPACE HAVING VIRUS, SPYWARE, AND HACKER PROTECTION FEATURES}ISOLATED MULTIPLEXED MULTI-DIMENSIONAL PROCESSING IN A VIRTUAL PROCESSING SPACE HAVING VIRUS, SPYWARE, AND HACKER PROTECTION FEATURES}

본 발명은 컴퓨터, 정보 기기, 이동 통신 장치, 및 다른 전자 장치에 대한 보안 및 안티-바이어스, 안티-해커, 및 안티-사이버 테러 특성에 관한 것으로서, 특히 장치내에 존재하는 악성 코드가 시스템 또는 다른 사용자 또는 프로그램 데이터에 영향을 미치지 않도록 하는 다수의 동시 또는 순차적인 시간 처리 환경들 및 절차 및 프로그램을 생성하는 안티-바이어스, 안티-해커, 및 안티-사이버 테러 특징을 지원하는 컴퓨터, 정보 장치, 이동 통신 장치, 및 다른 전자 계산 장치에 관한 것이다. FIELD OF THE INVENTION The present invention relates to security and anti-bias, anti-hacker, and anti-cyber terrorism characteristics for computers, information devices, mobile communication devices, and other electronic devices. Or computers, information devices, mobile communications that support anti-bias, anti-hacker, and anti-cyber terrorism features to create multiple concurrent or sequential time processing environments and procedures and programs that do not affect program data. Devices, and other electronic computing devices.

종래 기술에 따르면, 컴퓨터 또는 프로세서 기술을 사용하는 컴퓨터, 셀룰러 전화기, 및 광대역 장치들은 컴퓨터 해커, 바이러스, 사이버 테러리스트, 스파이웨어, 및/또는 다른 악성 컴퓨터 프로그램 코드에 취약하다. 안티-바이러스 소프트웨어가 공지되어 있지만, 이러한 안티-바이러스 소프트웨어는 새로운 바이러스가 침투하면 쓸모가 없어진다. 또한, 초기 배포(release) 단계 동안 일부 컴퓨터들에 대한 적어도 약간의 손상이 가해질 수 있다. 방화벽 및 다른 보호 조치들이 공지되어 있지만, 이러한 방화벽들은 회사 정보 기술(IT) 환경 외부의 공중 네트워크상에서 동작하는 휴대용 컴퓨터에 통합될 수 없고, 이러한 방화벽을 파괴하는 다수의 해킹 기술들이 존재한다. 바이러스, 스파이웨어, 및 해킹으로 인해 초래되는 전 세계적인 비용 손실은 수백억 달러로 추정된다. 비행기, 교통 시스템, 빌딩 환경 제어, 주식시장, 전화 시스템, 핵 발전소, 및 다른 공공 및 사립 시설들의 동작을 제어 및 관리하기 위해서 컴퓨터를 보다 많이 사용하기 때문에, 이러한 악성 코드로 인한 손해는 엄청날 것이다. According to the prior art, computers, cellular telephones, and broadband devices using computer or processor technology are vulnerable to computer hackers, viruses, cyber terrorists, spyware, and / or other malicious computer program code. Anti-virus software is known, but such anti-virus software becomes useless when new viruses penetrate. In addition, at least some damage to some computers may be done during the initial release phase. Although firewalls and other protective measures are known, these firewalls cannot be integrated into portable computers running on public networks outside the corporate information technology (IT) environment, and there are many hacking techniques that break down these firewalls. Worldwide cost losses resulting from viruses, spyware, and hacking are estimated at billions of dollars. The damage caused by such malware will be enormous, as more computers are used to control and manage the operation of airplanes, transportation systems, building environmental controls, stock markets, telephone systems, nuclear power plants, and other public and private facilities.

따라서, 컴퓨터 해킹, 바이러스, 스파이웨어, 사이버 테러 공격 등과 같은 악성 활동에 대한 보호막을 제공할 수 있는 구조, 시스템 및 동작 방법이 요구된다. 이러한 악성 에이전트에 대항하는 범용 백신이 요구된다. 또한, 기존의 컴퓨터들과는 달리, 파일들 또는 데이터 세트들을 열기 전에 공지된 깨끗한(clean) 저장 환경을 생성하기 위해서, 운영 시스템 및 애플리케이션 프로그램 소프트웨어 및/또는 데이터의 알려진 깨끗한 설치로 복귀함으로써 필요시에 "치료"를 사용자가 개시하고, 사용자가 메모리 및 데이터 저장 장치들을 리셋 및 삭제할 수 있도록 하여주는 컴퓨터가 요구된다. Accordingly, what is needed is a structure, system, and method of operation that can provide protection against malicious activities such as computer hacking, viruses, spyware, cyber terror attacks, and the like. There is a need for a universal vaccine against such malicious agents. In addition, unlike existing computers, in order to create a known clean storage environment before opening files or data sets, it is necessary to return to a known clean installation of the operating system and application program software and / or data, if necessary. What is needed is a computer that initiates a "treatment" and allows a user to reset and delete memory and data storage devices.

본 발명은 보안 및 안티-바이러스, 안티-해커, 및 안티-사이버 테러 특성을 제공하고, 계산 환경 및 데이터 저장 장치에 위치하는 악성 코드를 파괴하는 처리와 결합되어, 데이터 이동 및 복사를 제한하고, 이를 제어하는 방법과 함께 이러한 계산 환경들을 사용함으로써 바이러스, 악의적인 또는 다른 컴퓨터 해킹, 컴퓨터 또는 장치 파괴, 및 고장을 방지하기 위해서 다수의 순차적 또는 동시적 및 간헐적으로 분리되고 제한되는 계산 환경들을 자동적으로 생성할 수 있다. The invention provides security and anti-virus, anti-hacker, and anti-cyber terrorism characteristics, combined with processing to destroy malicious code located in computing environments and data storage devices, to limit data movement and copying, By using these computing environments in conjunction with a method of controlling it, it is possible to automatically eliminate multiple sequential or simultaneous and intermittent separate and restricted computing environments to prevent viruses, malicious or other computer hacks, computer or device destruction, and failures. Can be generated.

일 실시예에서, 본 발명은 정보 장치 구조, 시스템, 장치, 및 이들을 동작시키는 방법을 제공한다. 이러한 타입의 정보 장치는 프로그램 및 데이터를 위한 제1 저장 장치, 사용자 데이터를 포함하는 임무를 수행하기 위해서 컴퓨터 프로그램 지령들을 실행하는 프로세서 로직을 포함하며; (1) 사용자 데이터에 내장된 임의의 컴퓨터 프로그램 코드 지령들을 실행할 수 있는 컴퓨터 프로그램 코드에 대해 제어 프로세서 로직 환경에서 알려지지 않거나 신뢰되지 않는 컨텐츠를 갖는 사용자 데이터가 노출되지 않도록 하고, (2) 제1 저장 장치로부터 분리되는 경우, 제1 저장 장치와는 상이한 임시 저장 장치의 사용자 프로세서 로직 환경에만 알려지지 않거나 신뢰되지 않는 컨텐츠가 노출되도록 개별 제어 처리 환경들 및 사용자 처리 환경들이 생성 및 유지되는 방식으로 정보 장치가 동작한다. In one embodiment, the present invention provides information device structures, systems, devices, and methods of operating them. An information device of this type comprises a first storage device for programs and data, processor logic to execute computer program instructions to perform a task comprising user data; (1) prevent user data with unknown or untrusted content from being exposed in the control processor logic environment to computer program code capable of executing any computer program code instructions embedded in user data, and (2) storing first When disconnected from the device, the information device is created in such a way that separate control processing environments and user processing environments are created and maintained such that unknown or untrusted content is exposed only to the user processor logic environment of a temporary storage device different from the first storage device. It works.

또다른 실시예에서, 본 발명은 적어도 하나의 지령을 실행하기 위한 적어도 하나의 처리 로직 장치; 적어도 하나의 지령 및 하나의 사용자 데이터를 포함하는, 제1 데이터 및 제1 프로그램 코드를 저장하는 제1 저장 장치; 제2 데이터를 저장하는 제2 저장 장치; 자동화된 제어하에서 상기 제1 저장 장치 및/또는 제2 저장 장치를 상기 처리 로직 장치와 선택적으로 및 독립적으로 결합 및 결합 해제하는 스위칭 시스템으로서, 상기 스위칭 시스템은 스위칭 시스템의 조건을 선택하기 위해 처리 로직 장치로부터 적어도 하나의 제어 신호를 수신하는 스위칭 시스템을 포함하고; 여기서 상기 처리 로직 장치는 다음 조건들에 따라 사용자 데이터 구성 및 제어 구성에서 동작한다; (i) 신뢰되지 않는 컨텐츠를 갖거나 또는 알려진 제어된 환경으로부터 생성되지 않은 데이터 아이템을 실행할 수 없는 프로그램 지령으로 처리 로직이 로딩되면, 처리 로직 장치는 제1 저장 장치와 결합됨; (ii) 신뢰되지 않는 컨텐츠를 갖거나 또는 알려진 제어된 환경으로부터 생성되지 않은 데이터 아이템을 실행할 수 있는 프로그램 지령으로 처리 로직이 로딩되면, 처리 로직 장치는 제1 저장 장치와 결합되지 않음; (iii) 신뢰되지 않는 컨텐츠를 갖거나 또는 알려진 제어된 환경으로부터 생성되지 않은 데이터 아이템을 실행할 수 있는 프로그램 지령으로 처리 로직이 로딩되면, 처리 로직 장치는 제2 저장 장치와 결합됨; (iv) 제 1 저장 장치로부터 제2 저장 장치로 또는 제2 저장 장치로부터 제1 저장 장치로 단지 데이터 아이템을 복사만 할 수 있는 프로그램 지령으로 처리 로직이 로딩되면, 처리 로직 장치는 제1 저장 장치 및 제2 저장 장치와 결합됨. 정보 장치를 구현 및 동작시키는 방법이 제공된다. In another embodiment, the present invention provides an apparatus comprising: at least one processing logic device for executing at least one instruction; A first storage device for storing first data and first program code, the first storage device comprising at least one instruction and one user data; A second storage device for storing second data; A switching system that selectively and independently couples and uncouples the first storage device and / or second storage device with the processing logic device under automated control, the switching system comprising processing logic to select a condition of a switching system. A switching system for receiving at least one control signal from the apparatus; Wherein the processing logic device operates in the user data configuration and control configuration according to the following conditions; (i) if processing logic is loaded with program instructions that have untrusted content or are unable to execute a data item that was not created from a known controlled environment, the processing logic device is associated with the first storage device; (ii) the processing logic device is not associated with the first storage device if the processing logic is loaded with program instructions that have untrusted content or are capable of executing data items that are not created from a known controlled environment; (iii) if processing logic is loaded with program instructions that have untrusted content or that are capable of executing data items that were not created from a known controlled environment, the processing logic device is associated with the second storage device; (iv) If the processing logic is loaded with a program command that can only copy data items from the first storage device to the second storage device or from the second storage device to the first storage device, then the processing logic device may be configured as the first storage device. And a second storage device. A method of implementing and operating an information device is provided.

본 발명의 실시예들은 물리 및/또는 가상 처리 또는 계산 환경들을 생성하기 위해서 물리 및/또는 가상 처리 또는 계산 공간들에서 다수의 처리들에 대한 선택, 구성, 스위칭, 및/또는 멀티플렉싱을 제공한다. 일 실시예에서, 하나의 처리에서의 문제(예를 들면, 프로그램 바이러스 실행)가 다른 처리 또는 저장된 프로그램 또는 데이터에 영향을 주지 않도록 처리들 사이의 분리를 유지하는 방식으로 복수의 처리들에 대한 시간 멀티플렉싱이 제공된다. 분리는 신뢰된 구성 및 프로그램 엘리먼트들을 사용하여 신뢰된 사용자에 의해서 선택적으로 취소될 수 있다. Embodiments of the present invention provide for the selection, configuration, switching, and / or multiplexing of multiple processes in physical and / or virtual processing or computing spaces to create physical and / or virtual processing or computing environments. In one embodiment, the time for the plurality of processes in such a way as to maintain a separation between the processes so that problems in one process (eg, program virus execution) do not affect other processes or stored programs or data. Multiplexing is provided. Separation can be selectively canceled by a trusted user using trusted configuration and program elements.

본 발명의 실시예들은 처리 또는 계산 로직을 포함하는 임의의 장치, 컴퓨터, 노트북 컴퓨터, 개인 휴대 단말기, 개인 데이터 생성기, 셀룰러 전화기, 이동 전화기, 무선 수신기, 무선 송신기, GPS 수신기, 위성 전화기, 자동차 장착 컴퓨터, 비행기 장착 컴퓨터, 네비게이션 장치, 가정 기기, 프린터, 스캐너, 카메라, 디지털 카메라, TV 수신기, 방송 제어 시스템, 전자 장치, 의학 모니터, 보안 장치, 환경 제어 시스템, 처리 모니터링 또는 제어 시스템, 및 이들의 조합을 포함하는 다양한 전자 장치들에 적용될 수 있다. Embodiments of the invention include any device including processing or calculation logic, computer, notebook computer, personal digital assistant, personal data generator, cellular telephone, mobile telephone, wireless receiver, wireless transmitter, GPS receiver, satellite telephone, automobile mounting Computers, airplane-mounted computers, navigation devices, home appliances, printers, scanners, cameras, digital cameras, TV receivers, broadcast control systems, electronic devices, medical monitors, security devices, environmental control systems, process monitoring or control systems, and their It can be applied to various electronic devices including a combination.

도1은 종래 기술에 따른, 랩톱 컴퓨터 또는 다른 계산 장치를 보여주는 도이다.1 shows a laptop computer or other computing device, according to the prior art.

도2는 본 발명의 일 실시예를 통합하는 랩톱 컴퓨터 또는 다른 정보 장치를 보여주는 도이다. 2 illustrates a laptop computer or other information device incorporating one embodiment of the present invention.

도3은 본 발명의 일 실시예에 따라, 다수의 독립적인 계산 환경들을 지원하는 구조 및 시스템에 대한 다이아그램이다.3 is a diagram of a structure and system that supports multiple independent computing environments, in accordance with an embodiment of the invention.

도4는 본 발명의 일 실시예를 사용하기 위한 일 방법에 대한 흐름도이다.4 is a flowchart of one method for using an embodiment of the present invention.

도5는 계산 환경들을 개시하기 위한 일 방법에 대한 흐름도이다.5 is a flowchart of one method for initiating computing environments.

도6은 계산 환경들에 대한 하나 이상의 스위치 시스템들을 구현하는 일 방법에 대한 흐름도이다. 6 is a flow diagram of one method of implementing one or more switch systems for computing environments.

도7은 특별한 목적의 서브 시스템 또는 계산 환경 및 범용 제어기를 포함하는 본 발명의 대안적인 실시예를 보여주는 도이다. Figure 7 illustrates an alternative embodiment of the present invention that includes a special purpose subsystem or computing environment and a general purpose controller.

도8은 본 발명의 다른 대안적 실시예를 보여주는 도이다.Figure 8 illustrates another alternative embodiment of the present invention.

도9는 독창적인 구조 및 시스템을 갖는 또다른 대안적인 실시예를 보여주는 도이다. 9 illustrates another alternative embodiment with an inventive structure and system.

도10은 독창적인 구조 및 시스템을 갖는 또다른 대안적인 실시예를 보여주는 도이다. 10 illustrates another alternative embodiment with a unique structure and system.

도11은 사용자 처리를 위한 적어도 하나의 독립된 계산 환경 및 결합된 제어 계산 환경을 갖는 본 발명의 추가적인 실시예를 보여주는 도이다. 11 illustrates a further embodiment of the present invention having at least one independent computing environment and combined control computing environment for user processing.

도12는 구성요소들 및 액세스의 시간적으로 분리된 할당 및 간헐적 액세스를 사용하는 복수의 로직 또는 가상 계산 환경들을 지원할 수 할 수 있지만, 단지 하나의 물리적인 계산 환경을 제공하는 독창적인 구조 및 시스템에 대한 실시예를 보여주는 도이다. 12 may support multiple logic or virtual computational environments using temporally separated allocation and intermittent access of components and access, but with a unique architecture and system that provides only one physical computational environment. Figure shows an embodiment for.

도13은 본 발명의 양상들에 따른 독창적인 구조 및 시스템 구현에 대한 다른 실시예를 보여주는 도이다. Figure 13 illustrates another embodiment of an inventive architecture and system implementation in accordance with aspects of the present invention.

도14는 PC 카드와 같은 본 발명의 인터페이스 카드 실시예에 대한 도이다.Figure 14 is a diagram of an embodiment of an interface card of the present invention, such as a PC card.

도15는 PC 카드 및 주변 버스, 호스트 버스, 및 호스트 프로세서 사이의 연결을 보여주는 도14의 PC 카드 실시예에 대한 도이다.FIG. 15 is a diagram of the PC card embodiment of FIG. 14 showing the connection between the PC card and the peripheral bus, the host bus, and the host processor.

도16은 본 발명에서 다이나믹한 구성 및 구성요소의 스위칭 및 연결을 보여주는 도이다.Figure 16 illustrates the dynamic configuration and switching of components and connections in the present invention.

도17은 본 발명의 일 실시예에서 다이나믹한 구성 및 구성요소의 스위칭 및 연결의 다른 대안적인 양상을 보여주는 도이다. Figure 17 illustrates another alternative aspect of dynamic configuration and switching and connection of components in one embodiment of the present invention.

도18은 독창적인 계산 환경이 어떻게 다수의 키보드들 및 마우스들을 연결하고, 다수의 개별적인 레이어(layered) 비디오 세트들을 제공하는지를 포함하는 본 발명의 추가적인 특징을 보여주는 도이다. FIG. 18 is a diagram illustrating additional features of the present invention, including how the inventive computing environment connects multiple keyboards and mice, and provides multiple individual layered video sets.

도19는 처리 또는 계산 환경들이 프로세서 입력 및 출력들로부터 분리되어 유지되는, 처리 시스템 구성을 보여주는 도이다.19 shows a processing system configuration in which processing or computing environments are kept separate from processor inputs and outputs.

도20은 복수의 가상 및 물리적 처리 또는 계산 환경들을 갖는 N-차원 가상 처리 공간에 대한 실시예를 보여주는 도이다. 20 illustrates an embodiment of an N-dimensional virtual processing space having a plurality of virtual and physical processing or computing environments.

도21은 입력들 및 프로세서 사이의 분리를 유지하는 방법에 대한 도이다.21 is a diagram of a method of maintaining separation between inputs and a processor.

도22는 단지 하나의 프로세서만을 갖는 물리적 또는 가상의 처리 환경에서 복수의 프로세서들에 대한 시간적인 멀티플렉싱을 수행하는 시스템, 장치, 및 구조에 대한 특정 실시예를 보여주는 도이다. FIG. 22 illustrates a particular embodiment of a system, apparatus, and architecture for performing temporal multiplexing for multiple processors in a physical or virtual processing environment having only one processor.

도23은 컴퓨터의 복수의 처리들 사이에서 제어되는 분리도(degree of isolation)를 유지하기 위한 다른 시스템에 대한 실시예를 보여주는 도이다. Figure 23 shows an embodiment of another system for maintaining a controlled degree of isolation between a plurality of processes of a computer.

본 발명은 일반적으로 컴퓨터, 정보 장치, 이동 통신 장치, 셀룰러 및 이동 전화기, 개인 휴대 단말기(PDA), 음악 저장 장치 및 플레이어, 데이터 조직기, 이러한 기능 엘리먼트들을 통합하는 하이브리드 장치 등에 관한 것이다. 특히 본 발명은 다수의 순차적 또는 동시적 및 간헐적으로 분리 및/또는 제한된 계산 환경을 자동적으로 생성하여, 계산 환경들 및 데이터 저장 장치들에 위치하는 악성 코드들을 파괴하는 처리와 결합되어, 제한되고 제어된 이동 및 복사 데이터 방법과 함께 이러한 계산 환경들을 사용하여 바이러스, 악성 또는 다른 컴퓨터 해킹, 컴퓨터 또는 장치 파괴 및 고장을 방지하는 것과 관련된다. The present invention generally relates to computers, information devices, mobile communication devices, cellular and mobile telephones, personal digital assistants (PDAs), music storage and players, data organizers, hybrid devices incorporating such functional elements, and the like. In particular, the present invention is limited and controlled in combination with a process for automatically generating multiple sequential or simultaneous and intermittent separate and / or limited computational environments to destroy malicious code located in computational environments and data storage devices. The use of such computational environments in conjunction with advanced moving and copying data methods relates to preventing viruses, malicious or other computer hacking, computer or device destruction and failure.

본 발명에서, 이러한 요구들은 장치들 및 다른 정보 장치들을 계산하기 위한 동작 방법, 시스템, 구조를 제공함으로써 달성된다. 이러한 새로운 방법은 해킹 및 바이러스, 그리고 다른 악성 에이전트 및 코드에 대해 본질적으로 내성을 갖는 컴퓨터 및 정보 장치들을 제공할 수 있게 한다. 또한, 소프트웨어의 이전 백업으로 복귀함으로써 요구에 따라 "수리"를 사용자가 개시할 수 있도록 하는 컴퓨터들과는 달리, 본 발명의 창의적인 구조, 시스템 및 방법들은 각 파일을 열기 전에 메모리 및 데이터 저장 장치를 리셋 또는 삭제하여 알려진 깨끗한 저장 및 처리 환경을 유지한다. 예를 들어, 이러한 새로운 기술을 사용함으로써, 데이터 저장 장치는 자동적으로 재포맷 또는 삭제되고, 계산 환경에서 새로운 파일을 이동하거나 열기에 앞서, 그 계산 환경이 신뢰되지 않거나 알려지지 않은 코드에 노출되거나 노출될 가능성이 있은 후 마다 메모리는 소거 또는 리셋된다. In the present invention, these needs are achieved by providing an operating method, system, structure for computing devices and other information devices. This new method makes it possible to provide computers and information devices that are inherently resistant to hacking and viruses and other malicious agents and code. In addition, unlike computers that allow a user to initiate a "repair" on demand by reverting to a previous backup of the software, the inventive structures, systems, and methods of the present invention may reset or reset memory and data storage devices prior to opening each file. Delete to maintain a known clean storage and processing environment. For example, by using this new technique, data storage devices can be automatically reformatted or deleted, and the computing environment may be exposed or exposed to untrusted or unknown code before moving or opening new files in the computing environment. After every possibility, the memory is erased or reset.

본 발명의 실시예들이 자동 제어 시스템에 의해 생성, 동작, 및 중단되는, 간헐적으로 순차 분리 및/또는 통신적으로 제한된 계산 환경들을 제공함을, 본 발명의 구조, 시스템, 및 방법을 통해 잘 이해할 수 있을 것이다. 상이한 레벨의 분리(isolation) 및/또는 악성 코드로부터의 보안 또는 면역성 레벨이 계산 환경을 통합 또는 사용하는 장치의 계산 환경의 필요에 따라 구현될 수 있다. It is well understood through the structure, system, and method of the present invention that embodiments of the present invention provide intermittent sequential separation and / or communicationally limited computational environments that are created, operated, and interrupted by an automated control system. There will be. Different levels of isolation and / or security or immunity levels from malicious code can be implemented depending on the needs of the computing environment of the device incorporating or using the computing environment.

본 섹션은 해킹, 바이러스, 사이버-테러로부터, 그리고 스파이 소프트웨어(스파이-웨어), 키스트로크 기록들 및 해킹, 바이러스, 웜, 트로이 목마, 및 유사한 위협들로부터의 손상으로부터 컴퓨터들 및 계산 장치들을 보호하는 컴퓨터 프로그램 및 컴퓨터 프로그램 제품, 구조, 시스템, 장치, 및 방법을 설명한다. 사이버 테러는 사용자 비밀 데이터에 인가되지 않은 접속 시도에 의해 생성되는 공격과 같이, 계산 시스템을 파괴하는 시도이다. 본 발명은 잠재적인 사이버-테러에 대한 해법을 제시한다.This section protects computers and computing devices from hacking, viruses, cyber-terrorism, and from spy software (spy-ware), keystroke records and damage from hacking, viruses, worms, Trojan horses, and similar threats. A computer program and a computer program product, structure, system, apparatus, and method are described. Cyber terrorism is an attempt to destroy a computational system, such as an attack created by unauthorized access attempts to user secret data. The present invention provides a solution to potential cyber-terrorism.

종래의 컴퓨터 시스템은 일반적으로 프로세서, 메모리, 디스플레이, 디스플레이 제어기, 및 입력/출력 제어기를 포함한다. 본 발명은 컴퓨터 시스템(또는 다른 장치) 하우징 또는 케이스 내에 내장된 복수의 특별한 목적의 서브시스템들(물리적으로 또는 시간적으로 분리됨)을 제공한다. 이러한 특정 용도 서브시스템들은 일반적으로 제한된 기능들을 수행하며, 다른 특정 용도 시스템들과 제한된 상호작용을 갖는다. Conventional computer systems generally include a processor, memory, display, display controller, and input / output controller. The present invention provides a plurality of special purpose subsystems (physically or temporally separated) embedded within a computer system (or other device) housing or case. Such specific use subsystems generally perform limited functions and have limited interaction with other specific use systems.

범용 또는 특별한 목적의 서브시스템들(또한 일부 실시예들에서 "분리된 처리 유닛", "분리된 계산 환경들", 또는 간단히 "계산 환경들"로 지칭됨)은 정보 저장, 작업 수행, 및 통신 연결을 지원하는 것을 포함하여 다양한 목적들을 위해 설계될 수 있다. General purpose or special purpose subsystems (also referred to as "separate processing units", "separate computing environments", or simply "computing environments" in some embodiments) store information, perform tasks, and communicate. It can be designed for a variety of purposes, including supporting connections.

계산 환경들 및 이러한 계산 환경들의 구성요소들은 모듈러(modular)이거나, 계산 환경을 포함하는 결함 구성요소 또는 구성요소들 세트가 작업 부에서 교체되거나 수리될 때까지, CSCE 또는 CCE 계산 환경과 같은 엔티티를 제어함으로써 특정한 결함 구성요소 및/또는 계산 환경이 처리될 수 있도록 동적으로 구현될 수 있다. 첨부 구성요소들(예를 들어 하나 이상의 스위칭들을 통해서)의 선택적인 진단 처리 및 테스트 및 제거 구성요소들이 그 문제를 분리 및 식별하기 위해서 수행될 수 있다. Computing environments and components of such computing environments may be modular or contain entities such as CSCE or CCE computing environments until a faulty component or set of components, including the computing environment, is replaced or repaired in the work area. By controlling, specific fault components and / or computing environments can be dynamically implemented to be addressed. Optional diagnostic processing and testing and removal components of the attached components (eg, via one or more switches) may be performed to isolate and identify the problem.

계산 환경의 양상들이 이제 설명된다. 본 설명은 실현될 수 있는 특정 실시예들 및 물리적 구현들의 넓은 범위로 인해 다소 일반화된다. 계산 환경은 하나 이상의 컴퓨터 프로그램 지령을 실행한다. 하나 이상의 계산 환경들은 컴퓨터 시스템과 결합된다. 계산 환경은 물리적 표현, 논리적 표현, 및/또는 물리 및 논리적 표현들의 조합에 의해 표현될 수 있다. 물리적 표현에서, 계산 환경은 중앙 처리 유닛(CPU), 하나 이상의 메모리, 및 하나 이상의 주변 장치와 같은 물리적 컴퓨터 구성요소들을 포함한다. 논리적 계산 환경 표현에서, 하나 이상의 공통 계산 구성요소들을 이용함으로써, 제1 계산 환경은 다른 계산 환경들과 공존(coexist)할 수 있다. 바이러스, 해커, 또는 다른 악성 코드 또는 데이터와 통신하는 다른 계산 환경과 제1 계산 환경 사이에서 통신이 지원될 수 있도록 하기 위해서, 제1 계산 환경은 다른 계산 환경들과 분리된다. 예를 들어, 일 실시예에서, 제한된 정보 세트의 단지 비직접적(indirect) 통신만이 존재한다. 다른 실시예에서, 직접 통신이 존재하지만, 이러한 통신은 특정 방식으로 제한되어, 윈도우 스크린 조정, 마우스 위치 조정, 또는 여기서 추가적으로 상술되는 다른 임의의 데이터 타입들과 같은 인증된 데이터 타입들만을 허용한다. 필터 및 리미터(limiter)들이 제1 통신 환경 및 제2 또는 다른 계산 환경들 사이의 통신을 제한하기 위해서 사용될 수 있다. 일부 실시예들에서, 이러한 필터들 및/또는 리미터들은 악성 코드에 의해 파괴될 수 없는 하드웨어 회로들이고, 다른 실시예들에서, 소프트웨어 및/또는 펌웨 어가 이러한 필터링 또는 리미팅을 위해 사용되며, 다른 실시예들에서, 하이브리드 하드웨어-소프트웨어/펌웨어 필터 및/또는 리미터들이 사용될 수 있다. 각각의 계산 환경은 일반적으로 I/O 스위치 시스템을 통해 하나 이상의 주변 장치로부터 입력을 수신하고, I/O 스위치 시스템을 통해 하나 이상의 주변 장치로 출력을 전송하는 것을 포함하여, 다양한 처리 동작들을 수행할 수 있다. 하나의 계산 환경에 의해 수행되는 이러한 처리 동작은 일반적으로 다른 계산 환경의 처리 동작들과는 독립적이다. 본 발명의 일 실시예에 따르면, 하나의 계산 환경의 잠재적인 악성 처리 동작은 다른 계산 환경의 처리 동작과는 직접적으로 간섭하지 않는다. Aspects of the computing environment are now described. This description is somewhat generalized because of the wide range of specific embodiments and physical implementations that can be realized. The computing environment executes one or more computer program instructions. One or more computing environments are combined with a computer system. The computing environment may be represented by physical representations, logical representations, and / or combinations of physical and logical representations. In the physical representation, the computing environment includes physical computer components such as a central processing unit (CPU), one or more memories, and one or more peripherals. In a logical computational environment representation, by using one or more common computational components, the first computational environment may coexist with other computational environments. The first computing environment is separated from other computing environments so that communication can be supported between the first computing environment and other computing environments that communicate with viruses, hackers, or other malicious code or data. For example, in one embodiment, there is only indirect communication of a limited set of information. In other embodiments, direct communication exists, but this communication is limited in a particular manner, allowing only authorized data types, such as window screen adjustment, mouse position adjustment, or any other data types further described herein further. Filters and limiters may be used to limit communication between the first communication environment and the second or other computing environments. In some embodiments, these filters and / or limiters are hardware circuits that cannot be destroyed by malicious code, and in other embodiments, software and / or firmware are used for such filtering or limiting, and in other embodiments In these, hybrid hardware-software / firmware filters and / or limiters may be used. Each computing environment typically performs various processing operations, including receiving input from one or more peripherals through an I / O switch system and sending output to one or more peripherals through an I / O switch system. Can be. This processing operation performed by one computing environment is generally independent of the processing operations of the other computing environment. According to one embodiment of the invention, potential malicious processing operations of one computing environment do not directly interfere with processing operations of another computing environment.

일 실시예에 따르면, 분리된 계산 환경 및 다른 물리적 또는 논리적 계산 환경들은 컴퓨터 시스템에 대응하는 상이한 어드레스 공간들에 존재한다. 결과적으로, 각각의 물리적 또는 논리적 계산 환경은 다른 논리적 계산 환경들 각각의 동작과는 분리된다. 또한, 다양한 구성들이 다수의 논리적 계산 환경들의 생성 및 동작을 관리하기 위해 사용될 수 있다. 또한, 운영 시스템(예를 들면, 리눅스, 메킨토시, 마이크로소프트 윈도우(R), 및/또는 다른 운영 시스템)이 논리적 계산 환경, 물리적 계산 환경, 및/또는 논리적 및 물리적 계산 환경들의 조합에 대응한다. According to one embodiment, separate computing environments and other physical or logical computing environments exist in different address spaces corresponding to computer systems. As a result, each physical or logical computing environment is separate from the operation of each of the other logical computing environments. In addition, various configurations may be used to manage the creation and operation of multiple logical computing environments. In addition, operating systems (eg, Linux, Macintosh, Microsoft Windows®, and / or other operating systems) correspond to logical computing environments, physical computing environments, and / or combinations of logical and physical computing environments.

제어 계산 환경이 데이터 저장 스위칭 시스템 구성 및/또는 I/O 스위칭 시스템 구성을 구현 및/또는 재구현하기 위한 계산 환경들로부터 선택될 수 있다. 데이터 저장 스위칭 시스템 구성은 제어 계산 환경 및 상술한 보호된 데이터 저장 장치 사이의 통신을 지원한다. 일 실시예에 따르면, 초기 부팅 시퀀스는 컴퓨터 CMOS 데이터 내의 초기 구성 정보를 식별하여 제어 계산 환경, 보호된 데이터 저장 장치를 식별하고, 데이터 저장 스위치 구성 및/또는 I/O 스위치 시스템 구성의 구현을 개시한다. The control computing environment may be selected from computing environments for implementing and / or reimplementing the data storage switching system configuration and / or the I / O switching system configuration. The data storage switching system configuration supports communication between the control computing environment and the protected data storage device described above. According to one embodiment, the initial boot sequence identifies initial configuration information in computer CMOS data to identify a control computing environment, protected data storage device, and initiates implementation of a data storage switch configuration and / or an I / O switch system configuration. do.

하나 이상의 사용자 계산 환경이 계산 환경들로부터 선택되어 제어 계산 환경들 및 다른 사용자 계산 환경들과 분리되는 컴퓨터 처리를 수행한다. 데이터(예를 들면, 컴퓨터 파일)가 사용자 계산 환경과 통신적으로 결합되는 데이터 저장 장치를 통해 사용자 계산 환경에 의해 수신된다. 일 실시예에 따르면, 제어 계산 환경은 사용자 정보 및 보호된 데이터 저장 장치를 포함하는 제1 데이터 저장 장치와 통신적으로 결합된다. 제어 계산 환경은 보호된 데이터 저장 장치 및 제1 데이터 저장 장치 사이의 정보를 복사하는 것을 지원하도록 구성된다. 제어 계산 환경이 제1 데이터 저장 장치를 초기화한 후에, 제1 데이터 저장 장치는 제어 계산 환경으로부터 통신적으로 떨어지고(de-attached), 다른 계산 환경들과의 독립적인 사용을 위해 사용자 계산 환경에 연결된다. 사용자 계산 환경이 동작(예를 들면, 파일 편집, 이메일 수신 등)을 완료한 후에, 제1 데이터 저장 장치는 사용자 계산 환경으로부터 떨어지고 제어 계산 환경에 연결된다. 다시, 제어 계산 환경은 보호된 데이터 저장 장치 및 제1 데이터 저장 장치 사이의 정보를 복사하는 것을 지원하도록 구성된다. 결과적으로, 데이터는 사용자 계산 환경의 처리 동작들과는 독립적으로 저장될 수 있다. 따라서, 사용자 계산 환경 내에서 처리되는 악성 코드는 보호된 데이터 저장 장치 상에 저장된 데이터 및/또는 다른 파일들을 파괴하지 않는다. One or more user computing environments are selected from the computing environments to perform computer processing separate from the control computing environments and other user computing environments. Data (eg, computer files) is received by the user computing environment through a data storage device communicatively coupled with the user computing environment. According to one embodiment, the control computing environment is communicatively coupled with a first data storage device comprising user information and a protected data storage device. The control computing environment is configured to support copying information between the protected data storage device and the first data storage device. After the control computing environment initializes the first data storage device, the first data storage device is communicatively de-attached from the control computing environment and connected to the user computing environment for independent use with other computing environments. do. After the user computing environment has completed an operation (eg, editing a file, receiving an email, etc.), the first data storage device is separated from the user computing environment and connected to the control computing environment. Again, the control computing environment is configured to support copying information between the protected data storage device and the first data storage device. As a result, the data can be stored independently of the processing operations of the user computing environment. Thus, malicious code processed within the user computing environment does not destroy data and / or other files stored on the protected data storage device.

일 실시예에서, 악성 컴퓨터 프로그램 또는 소프트웨어를 실행하는 능력을 제공할 수 있는 처리 능력과 같은 정교한 처리 능력은 단지 복사 동작에서만 선택 적으로 또는 간헐적으로 제거된다. 이러한 정교한 처리 그 자체는 복사 동작 동안 제어 엔티티로부터의 신호에 응답하여 디스에이블되고, 이러한 동작이 완료되면 다시 인에이블된다. 이러한 동작은 예를 들어 파일 저장 동작 동안, 또는 데이터 또는 마스터 템플릿들을 계산 환경에 복사할 때 사용될 수 있다. In one embodiment, sophisticated processing power, such as processing power that can provide the ability to run malicious computer programs or software, is selectively or intermittently removed only in copy operations. This elaborate process itself is disabled in response to a signal from the controlling entity during the copy operation and is re-enabled when this operation is complete. This operation can be used, for example, during a file storage operation or when copying data or master templates to the computing environment.

일 실시예에서, 저장용 서브 시스템 또는 계산 환경(또는 보호된 저장 계산 환경)이 저장된 데이터에 대한 제한된 접속을 허용하면서, 데이터를 저장하고 데이터를 검색(retrieve)하도록 설계될 수 있다. 작업(working)용 서브 시스템(또는 분리된 처리 유닛 계산 환경으로 지칭됨)은 다양한 애플리케이션을 갖는 범용 컴퓨터와 동일한 결과를 달성하기 위해 정보를 처리하지만, 동시에 전체적으로 시스템을 보호하고, 손실 또는 파괴로부터 사용자 데이터를 보호하도록 설계된다. 통신용 서브 시스템(또는 제어 및 스위칭 계산 환경)은 다른 특정 용도 서브 시스템들 또는 계산 환경들 사이의 통신을 용이하게 하도록 설계된다. In one embodiment, a storage subsystem or computing environment (or protected storage computing environment) can be designed to store data and retrieve data while allowing limited access to stored data. The working subsystem (or referred to as a separate processing unit computing environment) processes information to achieve the same results as a general purpose computer with a variety of applications, but at the same time protects the system as a whole and protects the user from loss or destruction. It is designed to protect your data. The communication subsystem (or control and switching computing environment) is designed to facilitate communication between other specific use subsystems or computing environments.

각각의 특정 용도 서브 시스템 또는 계산 환경은 일반적으로, 수행될 처리에 따라, 처리 기능부, 메모리, 로직, 및 다른(내부 또는 외부) 구성요소와의 계산 환경 또는 특정 용도 서브시스템 중 하나, 일부, 또는 모두를 포함할 수 있다. 처리 기능부는 일부 타입의 컴퓨터 처리 유닛(CPU) 또는 ASIC일 수 있다. 처리 기능부는 컴퓨터 시스템 CPU 또는 다수의 특정 용도 서브시스템들에 의해 공유되는 CPU일 수 있다. 따라서, 특정 용도 서브 시스템과 관련되는 처리 기능부는 컴퓨터 시스템 또는 다른 특정 용도 서브시스템들에 의해 사용될 수 있다. Each particular use subsystem or computing environment generally includes one, some, or some of the computing environment or processing application with processing functions, memory, logic, and other (internal or external) components, depending on the processing to be performed. Or both. The processing function may be some type of computer processing unit (CPU) or ASIC. The processing function may be a computer system CPU or a CPU shared by a number of special purpose subsystems. Thus, processing functionality associated with a particular use subsystem may be used by the computer system or other specific use subsystems.

본 발명의 예시적인 특징들 및 양상들은 본 발명의 구조, 특징, 및 장점에 대한 개략적인 이해를 제공하기 위해서 기술된다. 본 섹션에 이어, 수개의 예시적인 구조 및 구조적 토폴로지에 대한 상세한 설명이 이어지며, 이를 통해 본 발명의 영역 및 특별한 구조 및 방법론적 실행이 이해될 수 있을 것이다. Exemplary features and aspects of the invention are described to provide a schematic understanding of the structure, features, and advantages of the invention. This section is followed by a detailed description of several exemplary structures and structural topologies, through which the scope and particular structure and methodological implementation of the present invention may be understood.

본 발명의 다양한 실시예들은 계산 환경의 처리, 데이터 저장 및 처리, 및 통신에 대한 제한, 및/또는 동시 및/또는 간헐적 그리고 순차적 또는 시간적 분리를 제공한다. 적어도 일부 실시예들에서, 이러한 분리 또는 제한은, 예를 들면 동작을 위해 다른 파일 또는 데이터 셋을 열기 전과 같이, 차후 동작을 위해 계산 또는 처리 환경을 사용하기에 앞서, 이전에 사용된 처리 또는 컴퓨터 환경들의 삭제, 재포맷화, 리셋하는 것과 결합된다.Various embodiments of the present invention provide limitations to the processing of the computing environment, data storage and processing, and communication, and / or simultaneous and / or intermittent and sequential or temporal separation. In at least some embodiments, such separation or limitation may be a process or computer previously used prior to using a computational or processing environment for subsequent operations, such as, for example, before opening another file or data set for operation. Combined with deleting, reformatting, and resetting the environments.

일 실시예에서, 컴퓨터 시스템 또는 계산 시스템 또는 기능을 통합하는 다른 장치에, 새로운 파일이 열리기 전에 순차적 및 자동적인 마스터 템플릿의 일부 또는 모두에 대한 삭제/리셋 및 복사가 컴퓨터를 수리하거나 또는 고장을 방지하도록 함으로써 새로운 타입의 자가 수리 특징이 제공된다. In one embodiment, on a computer system or other device incorporating a function, deletion / reset and copying of some or all of the sequential and automatic master templates before a new file is opened to repair the computer or prevent failure. This provides a new type of self repair feature.

일 실시예에서, 사용자 데이터는 하나 이상의 동시 또는 간헐적으로 순차적인 분리 및/또는 제한 데이터 저장 장치 및/또는 간헐적인 분리 및/또는 제한된 보호 계산 환경들에 저장된다. 여기서, 보호된 데이터 저장 장치(들) 또는 보호된 계산 환경(들)은 보호된 데이터 저장 장치(PDS)로 지칭될 수 있다. 보호된 데이터 저장 장치는 사용자 데이터 및 파일, 애플리케이션 프로그램 코드 프로그램들 또는 애플릿, 운영 시스템 또는 이들의 일부, 장치 드라이버, 상태 정보 등과 같은 임의의 데이터를 저장할 수 있다. In one embodiment, user data is stored in one or more simultaneous or intermittent sequential separation and / or restriction data storage devices and / or intermittent separation and / or limited protection computing environments. Here, protected data storage device (s) or protected computing environment (s) may be referred to as protected data storage devices (PDS). The protected data storage device may store any data such as user data and files, application program code programs or applets, operating system or portions thereof, device drivers, status information, and the like.

보호된 데이터 저장 장치 또는 보다 일반적으로 보호된 저장 장치의 구조, 조직, 및 저장된 컨텐츠는 시스템에 따라 달라질 수 있지만, (일부 선택적인 특징들을 포함하여) 일부 특징들이 일 실시예를 참조하여 설명된다. 보호된 데이터 저장 장치는 데이터(사용자 데이터, 컴퓨터 프로그램 코드, 이메일, 웹 페이지, 지령, 운영 시스템 코드, 또는 이진 비트들의 집합 등을 포함함)가 실행되지 않도록 하는 방식으로 정보를 저장하는데 사용된다. 따라서, 이러한 데이터는 저장 정보의 컨텐츠에 기반한 저장된 데이터 또는 정보에 대한 처리 또는 동작을 일반적으로 수행하는 처리 환경에 노출되지 않는다. 노출로부터의 이러한 분리가 데이터 및 소프트웨어 복사 동작 동안 동일하게 적용되어, 실행에 대한 노출이 기껏해야 그 특정 계산 환경만을 오염시키는 분리 컴퓨터 환경에 존재할 때까지, 그 내부에 포함된 임의의 악성 코드는 실행되지 않는다. Although the structure, organization, and stored content of a protected data storage device or more generally protected storage device may vary from system to system, some features (including some optional features) are described with reference to one embodiment. Protected data storage devices are used to store information in such a way that data (including user data, computer program code, email, web pages, instructions, operating system code, sets of binary bits, etc.) is not executed. Thus, such data is not exposed to a processing environment that generally performs processing or operations on stored data or information based on the content of stored information. This separation from exposure is applied equally during data and software copy operations, so that any malicious code contained therein is executed until the exposure to the run is in a separate computer environment that at most contaminates that particular computing environment. It doesn't work.

일 실시예에 따르면, 사용자 파일(예를 들면, 사용자 워드 처리 문서, 이메일, 스프레드시트, 마이크로소프트 아웃룩 또는 다른 컨택트 파일, 패스워드, 셀룰러 전화 번호 리스트, PDA 저장 데이터, 또는 다른 사용자 데이터 또는 프로그램)은 보호된 데이터 저장 장치에 저장된다. 일 실시예에서, 이러한 보호는 데이터를 보호된 저장 장치에 저장함으로써 달성되며, 이를 통해 바이러스, 로봇, 해커 코드, 또는 다른 악성 코드에 존재할 수 있는 악성 코드 또는 이진 시퀀스의 실행을 야기할 수 있는 임의의 구조 또는 처리에 의한 액세스가 이뤄지지 않는다. 이상적으로, 대응하는 작업 처리 문서의 편집 또는 이메일 메시지(및 첨부 문서)의 개봉 및 검토와 같은 사용자 동작들은 보호된 데이터 저장 장치에 저장된 문서의 원본과 는 독립적으로, 그리고 컴퓨터(또는 PDA, 셀룰러 전화기, 아날로그 또는 디지털 카메라, 또는 다른 정보 장치)내에 분리된 위치에서 원본 데이터의 복사에 대해 수행된다. 원본 파일 또는 데이터 세트의 보호된 저장 장치 및 파일 또는 데이터 세트의 복사에 대한 저장 및 동작의 구분(분리)은 아래에서 상세히 설명된다. 하나의 데이터 저장 장치에서 다른 데이터 저장 장치로 이동 또는 복사되거나, 데이터 저장 장치에 저장되더라도 문제를 일으키지 않는 "0" 및 "1" 비트들의 단순한 집합과 같은 다른 악성 코드 또는 바이러스를 실행할 수 있는 프로세서로부터의 분리가 이해된다. According to one embodiment, a user file (eg, a user word processing document, email, spreadsheet, Microsoft Outlook or other contact file, password, cellular phone number list, PDA stored data, or other user data or program) is Stored in a protected data storage device. In one embodiment, this protection is achieved by storing data in a protected storage device, which can cause the execution of malicious or binary sequences that may be present in viruses, robots, hacker code, or other malicious code. Access by structure or processing is not done. Ideally, user actions such as editing a corresponding job processing document or opening and reviewing an email message (and attached document) are independent of the original of the document stored on the protected data storage device and the computer (or PDA, cellular telephone). , Copying of the original data at a separate location within an analog or digital camera, or other information device. The separation (separation) of the storage and operation of the protected storage device of the original file or data set and the copy of the file or data set is described in detail below. From a processor capable of executing another malicious code or virus, such as a simple set of "0" and "1" bits that are moved or copied from one data storage device to another, or that do not cause problems when stored on the data storage device. Separation is understood.

하나 이상의 독창적인 데이터 저장 장치들이 보호된 데이터 저장 장치를 정의하기 위해서 사용된다. 다수의 보호된 데이터 저장 장치들이 선택적으로 정의되지만, 일반적으로 필요하지는 않다. 일 실시예에서, 보호된 데이터 저장 장치는 사용자 파일을 수정할 수 있는 처리 환경과는 독립적으로 사용자 데이터 또는 다른 파일들(예를 들면, 컴퓨터 애플리케이션 프로그램, 운영 시스템, 및 다른 비-사용자 코드 또는 데이터)을 저장하는데 사용될 수 있다. 마스터 템플릿은 보호된 저장 장치 형태에 저장될 수 있는 비-사용자 데이터의 일 타입이 될 수 있다. 이것은 보호된 마스터 템플릿 저장 장치로 지칭될 수도 있다. One or more original data storage devices are used to define a protected data storage device. Multiple protected data storage devices are optionally defined, but generally not required. In one embodiment, the protected data storage device is user data or other files (eg, computer application programs, operating systems, and other non-user code or data) independent of a processing environment that can modify the user file. Can be used to store The master template can be one type of non-user data that can be stored in the form of protected storage. This may be referred to as a protected master template storage device.

본 발명의 일 실시예에서, 문서 편집을 위한 사용자 결정은 문서의 원본이 보호된 데이터 저장 장치로부터 제2 데이터 저장 장치로 복사되도록 한다. 원본 문서 편집을 위해 제2 사용자 데이터 저장 장치와 결합될 수 있는 사용자 계산 환경은 문서의 제2 버전을 생성하기 위해서 사용된다. 예를 들어, 문서의 제2 버전 을 저장하는 것과 같은 사용자에 의한 행위는 문서의 제2 버전을 제2 저장 장치로부터 보호된 데이터 저장 장치로 다시 복사하는 일련의 지령들을 생성한다. 문서의 제2 버전을 보호된 데이터 저장 장치로 복사하는 것은 문서의 원본에 겹쳐 쓰는(overwrite) 것일 수 있다. In one embodiment of the present invention, the user's decision to edit the document causes the original of the document to be copied from the protected data storage device to the second data storage device. A user computing environment that can be combined with a second user data storage device for editing the original document is used to create a second version of the document. For example, an action by a user, such as storing a second version of a document, generates a series of instructions to copy the second version of the document back from the second storage device to the protected data storage device. Copying the second version of the document to the protected data storage device may be overwriting the original of the document.

보호된 데이터 저장 장치 및/또는 보호된 마스터 템플릿 저장 장치로부터 이진 데이터를 저장 및 검색하는 구조 및 과정 및 동일한 저장 장치상에 또는 동일한 컴퓨터 시스템 내에 저장된 악성 코드 또는 데이터를 포함하는 데이터를 처리함이 없이 컴퓨터 시스템 내에서 이러한 보호된 정보가 처리되는 동작에 대한 방법은 아래에서 상세히 설명된다. Structures and processes for storing and retrieving binary data from protected data storage devices and / or protected master template storage devices, and without processing data including malicious code or data stored on the same storage device or within the same computer system. The method for operation of processing such protected information within a computer system is described in detail below.

본 발명의 시스템에 대해서 살펴보면, 제어 계산 환경은 동시에 또는 간헐적으로 필요에 따라 보호된 데이터 저장 장치와의 통신을 분리 또는 제한하여 알려지지 않은 잠재적인 악성 코드를 발생시킬 수 있는 코드의 실행 또는 처리로부터 보호된 데이터 저장 장치를 보호시키는 것은 스위칭 통신에 의해서 이뤄진다. 보호된 데이터 저장 장치의 디렉토리는 예를 들어 제어 계산 환경 또는 보호된 저장 계산 환경에 의해 생성될 수 있고(본 명세서의 다른 부분을 참조), 이러한 디렉토리는 예를 들면 데스크탑 계산 환경과 같이 (동시에 또는 간헐적으로)분리 및/또는 제한된 계산 환경과 통신한다. 이러한 제어 계산 환경, 보호된 저장 계산 환경, 데스크탑 계산 환경, 및 다른 계산 환경들이 본 명세서 및 도면에서 상세히 설명된다. 일 실시예에서, 이러한 디렉토리는 제한된 처리 능력들을 포함하는 보호된 저장 계산 환경에 의해 만들어짐을 주목하여야 한다. 예를 들어, 이는 ASCII 및 확 장형 ASCII 파일 이름들 및 디렉토리들을 기록 및 판독하는 기능성을 포함할 수 있으며, 데이터를 복사 및 이동시킬 수 있는 능력을 포함할 수 있으며, 파일 디렉토리를 생성할 수 있는 능력을 포함할 수 있지만, 일반적으로 코드를 인식 또는 실행하거나, 시스템, 프로그램, 또는 데이터 무결성에 해로운 다른 기능들을 실행하는데 필요한 다른 기능성 또는 능력들을 포함하지는 않는다. 이러한 정보는 제어 계산 환경에 의해 수집되거나, 보호된 저장 계산 환경에 의해 제어 계산 환경으로 전송된다. With respect to the system of the present invention, the control computing environment protects against execution or processing of code that can generate unknown and potentially malicious code by separating or restricting communication with protected data storage devices simultaneously or intermittently as needed. The protection of the data storage device is achieved by switching communication. The directory of the protected data storage device may be created, for example, by a controlled computing environment or a protected storage computing environment (see other parts of this document), and such a directory may be, for example, a desktop computing environment (simultaneously or Intermittently) to communicate with a separate and / or limited computing environment. Such controlled computing environments, protected storage computing environments, desktop computing environments, and other computing environments are described in detail herein and in the figures. It should be noted that in one embodiment, this directory is created by a protected storage computing environment that includes limited processing capabilities. For example, this may include the ability to record and read ASCII and extended ASCII file names and directories, may include the ability to copy and move data, and the ability to create file directories. In general, it does not include other functionality or capabilities necessary to recognize or execute code or to execute other functions that are detrimental to the system, program, or data integrity. This information is collected by the control computing environment or transmitted to the controlled computing environment by the protected storage computing environment.

적어도 일 실시예에서, 다음 구조들 및/또는 절차들 중 하나, 또는 그 이상의 조합이 하나의 계산 환경 구성 및/또는 처리로 결합될 수 있고, 이들이 미리 결정되거나, 동적으로 결정 및 구성될 수 있다; (a) 제어 환경, (b) 보호된 저장, (c) 데스크탑 환경, (d) 스위칭, (e) 스위칭 구성, (f) 리-포맷화/삭제 환경, (g) 비디오 제어 환경, (h) 비디오 처리, 및 이들의 서브셋 또는 이들의 조합. 다른 선택적인 구조 및/또는 절차적 엘리먼트들이 대안적으로 또는 이에 부가하여 구현될 수 있다. 따라서, 예를 들어, 일 실시예에서, 본 발명은 2개의 계산 환경을 포함할 수 있으며, 그 하나는 모든 환경들, 스위치, 및 스위치 구성들을 포함하지만, 사용자 계산 환경을 배제한 계산 환경이고, 다른 하나는 사용자 환경만을 포함하는 계산 환경이다. In at least one embodiment, a combination of one or more of the following structures and / or procedures may be combined into one computing environment configuration and / or process, which may be predetermined or dynamically determined and configured. ; (a) control environment, (b) protected storage, (c) desktop environment, (d) switching, (e) switching configuration, (f) reformatting / deletion environment, (g) video control environment, (h) ) Video processing, and a subset or combination thereof. Other optional structural and / or procedural elements can alternatively or in addition be implemented. Thus, for example, in one embodiment, the invention may include two computing environments, one of which includes all environments, switches, and switch configurations, but excludes the user computing environment, and the other. One is a computing environment that includes only the user environment.

사용자 데이터를 열기 위해서, 사용자는 데스크탑 계산 환경에서 또는 이에 의해 위치확인 또는 식별되는 파일 이름, "쇼트컷(shortcut)", 또는 "가명(alias)"과 같은 데이터 표현을 선택한다. 실제 파일은 데스크탑 계산 환경에서 열리거나 실행되지 않으며, 그 데스크탑 계산 환경에 실제로 존재하지 않는다. 대신, 이러한 파일 이름 및 위치 정보(포인터 또는 파일 또는 데이터 셋 참조)는 데스크탑 계산 환경으로부터 분리되지 않은 제어 계산 환경으로 전송된다. 이러한 실시예에서, 제어 계산 환경은 사용자(또는 다른 지정된 엔티티)에 의해 선택된 파일 이름에 대응하는 파일을 보호된 데이터 저장 장치로부터 복수의 동시 또는 간헐적인 분리 및/또는 통신적으로 제한된 계산 환경(예를 들면, 사용자 계산 환경 #1)들 중 하나로 복사한다. 이러한 실시예에서, 파일을 열기 위해서 명령이 사용자 계산 환경 #1으로 전송되고, 사용자 계산 환경 #1과의 제한되지 않은 통신을 종료하기 위해서 스위치(들)로 명령이 전송된다. 이러한 동작과 관련된 구조, 시스템, 및 방법은 본 명세서 전반에 걸쳐 상세히 설명된다. To open the user data, the user selects a data representation, such as a file name, “shortcut,” or “alias” that is located or identified in or by the desktop computing environment. The actual file does not open or run in the desktop computing environment, and does not actually exist in that desktop computing environment. Instead, this file name and location information (see pointer or file or data set) is transferred to a control computing environment that is not separated from the desktop computing environment. In such an embodiment, the control computational environment may comprise a plurality of concurrent or intermittent separate and / or communicationsally limited computational environments (e.g., a file corresponding to a file name selected by the user (or other designated entity) from the protected data storage device. For example, copy to one of the user computing environments # 1). In this embodiment, the command is sent to user computing environment # 1 to open the file, and the command is sent to switch (s) to terminate unrestricted communication with user computing environment # 1. The structures, systems, and methods associated with this operation are described in detail throughout this specification.

사용자 데이터가 악성 코드에 "감염"되어 실행되면, 원래 감염된 데이터 파일에 대한 손상을 제외하고, 악성 코드를 실행함으로써 보호된 저장 장치 내에 있는 다른 사용자 데이터 또는 정보는 손상되지 않는다. 애플리케이션 프로그램 컴퓨터 코드 또는 운영 시스템 프로그램 코드가 오염되거나 손상되더라도, 이러한 오염 또는 손상은 시스템 또는 장치의 연속된 동작에 영향을 미치지 않는데, 왜냐하면 단지 복사만이 오염 또는 손상되었고, 복사는 재사용되지 않기 때문이다. When user data is "infected" with malicious code and executed, other user data or information within the protected device by running the malicious code is not damaged, except for damage to the original infected data file. Even if the application program computer code or operating system program code is contaminated or damaged, this contamination or damage does not affect the continuous operation of the system or device because only the copy is contaminated or damaged and the copy is not reused. .

이러한 예시적인 실시예에서, 선택적인 제한된 통신 경로는 사용자 계산 환경 #1을 제어 계산 환경으로 연결시키고, 이러한 통신 경로는 임의의 하나 또는 그 이상의 경로들로 제한될 수 있다. 예를 들어, 이러한 통신 경로는 단지 미리 결정된 ASCII 문자들 세트만을 통과시키는 것을 허용하는 것과 같이 매우 제한된 통신 능력들을 갖는 ASCII 리미터 또는 필터에 의해 제한될 수 있고, 이러한 세트 및 명령은 실행가능한 지령들을 지원하지 않는 미리 결정된 높은 확률 또는 정확성을 가지고 알려진다. 이러한 리미터는 예를 들어, 통신이 시도되는 비트들 또는 문자들을 허용된 비트들 또는 문자들 세트와 비교한다. 이러한 실시예에서, 예를 들어, 이는 예를 들어, "파일 저장" 및" 이러한 계산 환경을 삭제/리셋" 하는 것과 같은 개념들을 나타내는 이진 "0" 또는 "1" 비트들의 시퀀스와 같이 제한된 수를 제어 환경으로 통신하는데 필요한 기능성만을 포함하며, 예를 들어 시간 주기에서 또는 이벤트(들)에 응답하여 통신할 수 있는 정보의 양에 대한 제한을 포함한다. In this example embodiment, the optional restricted communication path connects user computing environment # 1 to the control computing environment, which may be limited to any one or more paths. For example, such a communication path may be limited by an ASCII limiter or filter with very limited communication capabilities, such as allowing only a predetermined set of ASCII characters to pass through, and this set and command support executable instructions. It is known that it does not have a predetermined high probability or accuracy. This limiter compares, for example, the bits or characters with which communication is attempted to the allowed bits or characters set. In this embodiment, for example, it may be restricted to a limited number, such as a sequence of binary "0" or "1" bits, representing concepts such as, for example, "save file" and "delete / reset this computing environment." Includes only the functionality needed to communicate to the control environment, including, for example, a limitation on the amount of information that can be communicated in a time period or in response to event (s).

대안적으로 또는 이에 추가하여, 전기 또는 광학 광 펄스 또는 다른 신호가 제어 환경과 연결된 수신기로 통신될 수 있으며, 예를 들어, 하나의 펄스는 "파일 저장"을 의미하고, 2개의 연속적인 펄스들은 "계산 환경 삭제/리셋"을 의미한다. 이러한 것들은 단지 예일 뿐이며, 당업자는 본 명세서를 참조하여 정보의 양 또는 속성을 제한하지만, 다른 요구되는 동작을 제공하는 다른 시그널링 방식이 사용될 수 있음을 잘 이해할 수 있을 것이다. Alternatively or in addition, electrical or optical light pulses or other signals may be communicated to a receiver connected with the control environment, for example, one pulse means “file storage” and two consecutive pulses It means "delete / reset calculation environment". These are merely examples, and those skilled in the art will appreciate with reference to the present specification that other signaling schemes may be used that limit the amount or nature of the information, but provide other required actions.

데이터 저장 장치 및 그 계산 환경이 사용자 문서에 "노출"된 후에, 따라서 잠재적으로 바이러스, 스파이 소프트웨어, 또는 악성 프로그램 코드에 노출된 후에, 데이터 저장 장치는 완전히 재포맷되거나, 소거, 삭제, 및 리셋되어, 예를 들어, 숨겨진 부분들, 드라이버, 부팅 섹션, 숨겨진 코드 등과 같은 모든 데이터를 제거한다. 계산 환경은 다음번에 사용하기 전에 잔여 오염(contamination)이 없도록 보장하는 방식으로 (예를 들어, 사이클링된 전력 또는 그렇지 않으면 소거된 또 는 재로딩된 전력과 같이) "재-설정"될 수 있다. After the data storage device and its computing environment are "exposed" to the user's document, and therefore potentially exposed to virus, spy software, or malware code, the data storage device is completely reformatted, erased, deleted, and reset. , Remove all data such as hidden parts, drivers, boot sections, hidden code, etc. The computing environment may be "re-set" in a manner that ensures there is no residual contamination before next use (e.g., cycled power or otherwise erased or reloaded power).

위에서 (그리고 본 명세서의 다른 부분에 있는 여러가지 대안적인 실시예들에서) 설명된 스위칭 및 복사 프로세스는 데이터를 안전하게 분리된 계산 환경들 및 데이터 저장 장치들 또는 저장 서브시스템으로/으로부터 이동시키기 위해 사용될 수 있다; 이러한 프로세스는 제어 계산 환경, 관련된 소프트웨어 및 연결된 스위치들에 의해 제어되고 편성될 수 있다. (본 발명의 다양한 실시예들에서 보다 상세하게 설명되며, 단순화된 용어로서 깨끗하고 오염되지 않은 실행가능한 코드를 포함하는) 마스터 템플릿들은 필요에 따라 데이터 저장 장치들 사이에서 복사될 수 있다. The switching and copying process described above (and in various alternative embodiments elsewhere herein) may be used to move data to and from securely separate computing environments and data storage devices or storage subsystems. have; This process can be controlled and organized by the control computing environment, associated software and connected switches. Master templates (described in more detail in various embodiments of the present invention, including clean and uncontaminated executable code in simplified terms) can be copied between data storage devices as needed.

여러가지 스위치들, 스위칭 시스템들 및 수단은 여러가지 실시예들과 관련하여 설명된다. 다시, 이러한 설명은 본 발명의 아키텍쳐, 시스템 및 방법이 많은 상이한 물리적 구현들 및 장치 타입들로 광범위하게 적용될 수 있기 때문에 다소 일반화되어 있다. 일 실시예에서, 일반적인 스위치 시스템은, 명명될 수 있는 많은 예들 중에서 단지 두 개만을 명명하기 위해, 예를 들어, 제 1 및 제 2 저장 장치들 사이에서 또는 네트워크 인터페이스 카드(NIC)와 계산 환경 사이에서와 같은 소스와 목적지 사이의 통신을 지원하도록 하나 이상의 소스와 하나 이상의 목적지를 연결하기 위해 사용될 수 있다. 통신은 소스와 목적지 사이에서 양방향 통신 또는 단방향 통신을 지원할 수 있다. 일반적인 스위치 시스템은 어떤 소스들이 어떤 목적지들과 연결되어야 하는지를 결정하기 위해 사용되는 스위치 구성과 연결될 수 있다. 스위치 구성은, 예를 들어, 하나 이상의 로직 회로 또는 회로들, 데이터 화일, 룩-업 테이블 및/또는 소스(들)과 목적지(들) 사이의 접속들 또는 유효하게 인에이블된 통신 경로들을 식별하거나 지정하기 위한 임의의 다른 수단을 포함할 수 있다. 일 실시예에서, 스위치 구성은 유효하지 않거나 또는 인에이블되지 않은 통신 경로들을 식별할 수 있으며, 다른 실시예에서, 스위치 구성은 가능한 소스들과 목적지들 사이에서 유효하지 않은(인에이블되지 않은) 통신 경로와 유효한(인에이블된) 통신 경로 모두를 식별할 수 있다. 일반적인 스위치 시스템은 하드웨어, 소프트웨어 및/또는 이들의 결합으로 구현될 수 있다. Various switches, switching systems and means are described in connection with various embodiments. Again, this description is somewhat generalized because the architecture, systems and methods of the present invention may be widely applied to many different physical implementations and device types. In one embodiment, a generic switch system may, for example, name only two of the many examples that may be named, for example, between first and second storage devices or between a network interface card (NIC) and a computing environment. It can be used to connect one or more sources and one or more destinations to support communication between sources and destinations as in. The communication may support two-way or one-way communication between the source and the destination. A typical switch system may be connected with a switch configuration used to determine which sources should be connected to which destinations. The switch configuration may, for example, identify one or more logic circuits or circuits, data files, look-up tables and / or connections or validly enabled communication paths between the source (s) and destination (s). May include any other means for designation. In one embodiment, the switch configuration may identify communication paths that are not valid or not enabled, and in other embodiments, the switch configuration is invalid (not enabled) communication between possible sources and destinations. Both a path and a valid (enabled) communication path can be identified. A typical switch system can be implemented in hardware, software and / or a combination thereof.

본 발명의 일 실시예에 따르면, 일반적인 스위치 시스템은 물리적 스위치로서 하드웨어로 구현될 수 있다. 소스는 IDE 장치로 표시될 수 있으며, 목적지는 계산 환경으로 표시될 수 있다. 각각의 소스는 IDE 케이블을 사용하여 일반적인 스위치 시스템과 연결될 수 있다. 각각의 목적지는 또한 IDE 케이블을 사용하여 일반적인 스위치 시스템과 연결될 수 있다. 본 발명의 일 실시예에 따르면, 스위치 구성은 스위치의 물리적 기능들에 따라 표현될 수 있으며 IDE 케이블들은 물리적으로 스위치와 연결된다. 물리적 스위치의 물리적 조작 및/또는 트위스팅은 소스와 목적지 사이의 통신을 지원하기 위해 소스에 대응하는 주어진 IDE 케이블과 목적지에 대응하는 주어진 제 2 IDE 케이블을 연결할 수 있다. 소스와 목적지 사이의 통신은 양방향 통신을 지원할 수 있다. 본 발명의 일 실시예에 따르면, 스위치는 수동으로 그리고/또는 하나 이상의 계산 환경의 지시 및/또는 제어에 의해 동작할 수 있다. According to one embodiment of the invention, a general switch system may be implemented in hardware as a physical switch. The source can be represented by an IDE device, and the destination can be represented by a computing environment. Each source can be connected to a typical switch system using an IDE cable. Each destination can also be connected to a typical switch system using an IDE cable. According to one embodiment of the invention, the switch configuration can be represented according to the physical functions of the switch and the IDE cables are physically connected to the switch. Physical manipulation and / or twisting of the physical switch may connect a given IDE cable corresponding to the source and a given second IDE cable corresponding to the destination to support communication between the source and destination. Communication between the source and the destination may support bidirectional communication. According to one embodiment of the present invention, the switch may be operated manually and / or by directing and / or controlling one or more computing environments.

본 발명의 일 실시예에 따르면, 일반적인 스위치 시스템은, 예를 들어, 일반 적인 스위치 시스템과 연결된 컴퓨터 시스템의 사용을 통해서 하드웨어와 소프트웨어의 결합으로 구현될 수 있다. 컴퓨터 시스템은 하나 이상의 컴퓨터 명령들을 실행할 수 있으며 일반적인 스위치 시스템을 구성하기 위해 사용될 수 있다. 여러가지 예시적인 명령들은 구성 명령들, 통신 명령들 및 액세스 명령들을 포함할 수 있다. 구성 명령들은 주어진 소스와 목적지 사이에서 통신을 인에이블시키거나 디스에이블시키는 기능을 지원하도록 통신을 구성하기 위해 사용될 수 있다. 통신 명령들은 하나 이상의 구성들과 관련된 정보를 수신하고, 전송하고 그리고/또는 검증하기 위해 사용될 수 있다. 예를 들어, 통신 명령들은 구성 명령에 의해 계속해서 이용될 수 있는 정보를 수신하기 위해 사용될 수 있다. 액세스 명령들은 스위치 구성과 관련된 정보를 판독 및/또는 기록하기 위해 사용될 수 있다. 그러나, 다른 명령들 및/또는 명령들의 세트들도 사용될 수 있다는 것을 이해해야 할 것이다. According to one embodiment of the invention, a general switch system may be implemented in a combination of hardware and software, for example, through the use of a computer system connected with a general switch system. A computer system can execute one or more computer instructions and can be used to construct a general switch system. Various example instructions may include configuration instructions, communication instructions, and access instructions. Configuration instructions can be used to configure the communication to support the ability to enable or disable communication between a given source and destination. Communication commands may be used to receive, transmit and / or verify information related to one or more configurations. For example, communication commands can be used to receive information that can continue to be used by configuration commands. Access commands can be used to read and / or write information related to the switch configuration. However, it will be understood that other instructions and / or sets of instructions may be used.

데이터 저장 스위치 시스템은 일반적인 스위치 시스템의 기능을 포함할 수 있으며, 소스는 데이터 저장 장치를 나타내고 목적지는 계산 환경을 나타낼 수 있다. 어떤 데이터 저장 장치들이 어떤 계산 환경들과 연결되는지를 식별하기 위해 일반적인 구성이 사용될 수 있다. 위에서 설명된 바와 같이, IDE 장치들은 하나 이상의 계산 환경과의 통신을 지원하기 위해 구성될 수 있는 데이터 저장 장치의 일례를 나타낼 수 있다. The data storage switch system may include the functionality of a typical switch system, with a source representing a data storage device and a destination representing a computing environment. A general configuration can be used to identify which data storage devices are connected to which computing environments. As described above, IDE devices may represent an example of a data storage device that may be configured to support communication with one or more computing environments.

본 발명의 일 실시예에 따르면, 데이터 저장 스위치 시스템은 일반적인 구성에 대응하는 특성들의 개수 및/또는 타입을 확장할 수 있는 데이터 저장 스위치 시스템 구성과 연결될 수 있다. 데이터 저장 스위치 시스템 특성들은 또한 소스와 목적지 사이의 통신을 구성하도록 지원할 수 있다. According to an embodiment of the present invention, the data storage switch system may be connected with a data storage switch system configuration which may extend the number and / or type of characteristics corresponding to the general configuration. Data storage switch system characteristics can also assist in configuring communication between a source and a destination.

I/O 및/또는 다른 주변 장치 또는 장치 스위치 시스템은 일반적인 스위치 시스템의 기능을 포함할 수 있으며, 여기서 소스는 주변 장치를 나타내고 목적지는 계산 환경을 나타낼 수 있다. 어떤 데이터 저장 장치들이 어떤 계산 환경들과 연결되는지를 식별하기 위해 일반적인 구성이 사용될 수 있다. 키보드 장치는 하나 이상의 계산 환경과 통신하도록 지원하기 위해 구성될 수 있는 주변 장치의 일 실시예를 나타낼 수 있다. I / O and / or other peripheral or device switch systems may include the functionality of a typical switch system, where a source may represent a peripheral device and a destination may represent a computing environment. A general configuration can be used to identify which data storage devices are connected to which computing environments. The keyboard device may represent one embodiment of a peripheral device that may be configured to support communication with one or more computing environments.

본 발명의 일 실시예에 따르면, I/O 시스템은 일반적인 구성에 대응하는 특성들의 개수 및/또는 타입을 확장할 수 있는 I/O 시스템 구성과 연결될 수 있다. I/O 스위치 시스템 특성들은 소스와 목적지 사이의 통신을 구성하도록 지원한다. 일 실시예에서, 이러한 스위칭 및 통신 경로들과 관련하여, 데이터 저장 스위치 통신 경로는 데이터 저장 스위치와 계산 환경을 연결하기 위해 사용된다. 데이터 저장 스위치 통신 경로는, 위에서 설명된 바와 같이, 데이터 저장 스위치 구성에 따라 적어도 하나의 데이터 저장 장치와 통신하도록 지원하기 위해 사용된다. 일 실시예에 따르면, 계산 환경과 연결된 데이터 저장 장치들 중 하나는 컴퓨터 부트 장치로서 계산 환경에 의해 사용될 수 있는 운영 시스템을 포함한다. According to an embodiment of the present invention, the I / O system may be connected with an I / O system configuration that can extend the number and / or type of characteristics corresponding to the general configuration. I / O switch system characteristics support configuring communication between source and destination. In one embodiment, with respect to these switching and communication paths, a data storage switch communication path is used to connect the data storage switch and the computing environment. The data storage switch communication path is used to support communication with at least one data storage device in accordance with the data storage switch configuration, as described above. According to one embodiment, one of the data storage devices associated with the computing environment includes an operating system that can be used by the computing environment as a computer boot device.

유사한 방식으로, I/O 스위치 통신 경로는 I/O 스위치 시스템과 계산 환경을 연결하기 위해 사용된다. I/O 스위치 통신 경로는 하나 이상의 주변 장치를 하나 이상의 계산 환경과 연결하기 위해 사용될 수 있다. I/O 스위치 시스템 구성은 하나 이상의 컴퓨터 환경들로부터의 출력을 하나의 출력 장치로 전달하기 위해 사용 될 수 있다. 유사하게, I/O 스위치 시스템 구성은 하나의 주변 계산 장치로부터의 입력을 하나 이상의 계산 환경들로 전달하기 위해 사용될 수 있다. In a similar manner, I / O switch communication paths are used to connect the I / O switch system with the computing environment. I / O switch communication paths may be used to connect one or more peripheral devices with one or more computing environments. The I / O switch system configuration can be used to deliver output from one or more computer environments to one output device. Similarly, an I / O switch system configuration can be used to deliver input from one peripheral computing device to one or more computing environments.

I/O 스위치 시스템 구성은 대응하는 특성에 기반하여 수신된 입력(또는 출력)을 적어도 하나의 계산 환경으로 전달하도록 구성될 수 있다. 그리고, I/O 스위치 시스템 구성은 대응하는 특성(본 명세서의 다른 부분에 있는 특성들에 대한 설명을 볼 것)에 기반하여 하나 이상의 계산 환경들에 의해 생성된 출력을 입력/출력 장치, 주변 장치 또는 시스템에 있는 몇몇 다른 구성요소로 전달하도록 구성될 수 있다. The I / O switch system configuration may be configured to deliver the received input (or output) to at least one computing environment based on the corresponding characteristic. In addition, the I / O switch system configuration may be configured to output the output generated by one or more computing environments based on the corresponding characteristic (see description of the characteristics in other parts of this specification). Or to some other component in the system.

다른 타입의 신호에 대하여 주의를 돌리면, 일 실시예에서, 각각의 분리된 계산 환경으로부터의 비디오 신호 출력들은 악성 코드가 더 이상 실행될 수 없을 때(예를 들어, 출력이 그래픽 "프리미티브(primitive) 및 속성"으로 변환되었을 때, 그리고/또는 비디오 신호들은 아날로그 신호들임) 이러한 비디오 신호들을 처리하는 시점에서 결합되거나 또는 혼합될 수 있다. 이것은 분리된 계산 환경들에서 발생하는 프로세스를 나타내는 윈도우 비디오 신호가 상이한 계산 환경들을 크로스 오염시키기 위한 매체로서 사용되지 않도록 방지한다. (특히 특화된 장치들의 몇몇 처리가 계산 환경에서 데이터를 처리할 수 있으나 사용자가 볼 수 있는 비디오 디스플레이 또는 신호를 제공하지 않기 때문에, 모든 계산 환경들이 비디오 출력 신호들을 요구하거나 또는 생성하지 않는다는 것을 유의하도록 한다.)Turning attention to other types of signals, in one embodiment, the video signal outputs from each separate computational environment may be corrupted when the malicious code can no longer be executed (e.g., the output is a graphical "primitive and And / or video signals are analog signals) at the time of processing such video signals. This prevents a window video signal representing a process occurring in separate computing environments from being used as a medium for cross contamination of different computing environments. Note that not all computational environments require or generate video output signals (especially because some processing of specialized devices may process data in a computing environment but does not provide a user-visible video display or signal). .)

일 실시예에서, 소위 "분리된 글로벌 툴바(toolbar)"는 또한 미리 결정된 또는 동적(예를 들어, 컨텍스트에 민감한) 명령들 및/또는 다른 동작들 또는 기능들 을 위해 이용될 수 있다. 이러한 분리된 글로벌 툴바는 자신을 악성 코드로부터 보호하기 위해 자신의 분리된 비디오 계층 또는 데스크탑 계산 환경 상에 나타날 수 있다. 바람직하게는, 분리된 글로벌 툴바는 항상 상위에 있거나 또는 몇몇 사용자 명령 또는 동작에 응답하여 디스플레이되며, 그 결과 사용자 또는 다른 신뢰할 수 있는 제어 엔티티는 직접 계산 환경들 중 하나에서 동작을 제어할 수 있다. 예를 들어, 사용자가 디스플레이 스크린의 윈도우 비디오 부분에 표현된 몇몇 의심스러운 출력을 보게 되면, 사용자는 분리된 글로벌 툴바로 액세스하고 계산 환경에서 발생하는 처리를 종결하며, 선택적으로 화일을 저장하기 또는 저장하지 않기와 같은 다양한 옵션들을 취하게 된다. 일 실시예에서, 이것은 사용자 또는 운영자에게 전체 시스템의 운영뿐만 아니라 임의의 계산 환경에서 발생하는 동작들에 대한 행정적인 제어를 제공한다. 글로벌 툴바는 임의의 동작 또는 기능을 허용할 수 있으나, 몇몇 실시예들에서 글로벌 툴바는 행정적인 기능들 또는 동작에 대한 보다 제한된 세트를 가지게 된다. 몇몇 실시예들에서, 글로벌 툴바를 통해 액세스될 수 있는 기능들 및 동작들은 시스템 디폴트들, 행정적 우선 순위들, 사용자 우선 순위들 또는 다른 규칙들 또는 정책들에 따라 설정될 수 있다. In one embodiment, a so-called “separated global toolbar” may also be used for predetermined or dynamic (eg, context sensitive) instructions and / or other operations or functions. This separate global toolbar can appear on its own separate video layer or desktop computing environment to protect itself from malicious code. Preferably, a separate global toolbar is always on top or displayed in response to some user command or action, such that the user or other trusted control entity can control the action directly in one of the computing environments. For example, if the user sees some suspicious output represented in the window video portion of the display screen, the user accesses a separate global toolbar and terminates the processing that occurs in the computational environment, optionally saving or saving the file. You will take various options, such as not doing it. In one embodiment, this provides the user or operator with administrative control over operations of the entire system as well as operations that occur in any computing environment. The global toolbar may allow for any action or functionality, but in some embodiments the global toolbar will have a more limited set of administrative functions or actions. In some embodiments, the functions and operations that can be accessed through the global toolbar may be set according to system defaults, administrative priorities, user priorities or other rules or policies.

일 실시예에서, 이러한 기능들 및 동작들은 또한 또는 대안적으로 컴퓨터 프로그램 소프트웨어 명령들에서 수행될 수 있다. 다른 실시예들에서, 하드웨어 구성요소가 있을 수 있으며, 또다른 실시예들에서, 하드웨어와 소프트웨어의 결합이 있을 수 있다. 그리하여, 각각의 환경은 소프트웨어에서 분리될 수 있으며, 스위칭 및 복사는 소프트웨어 등에 의해 수행될 수 있다. In one embodiment, these functions and operations may also or alternatively be performed in computer program software instructions. In other embodiments, there may be hardware components, and in other embodiments, there may be a combination of hardware and software. Thus, each environment can be separated in software, and switching and copying can be performed by software or the like.

선택적인 절차 단계들은 잘리거나 또는 제외될 수 있으며, 여기에 설명된 계산 환경들의 기능들은 원하는 대로 혼합되고 매칭될 수 있다는 것을 유의하도록 한다. 몇몇 예들에서, 선택적인 단계들 또는 절차들을 포함하거나 또는 제외하는 결정은 위협적인 환경, 데이터 및/또는 동작의 민감성, 속도에 대한 요구, 저장 장치 속성들(예를 들어, 자기적 저장 매체 대 전자적 RAM) 및 다른 인자들과 관련하여 이루어질 것이다. 예를 들어, 제어 계산 환경의 기능들은 데스크탑 계산 환경 및/또는 스위치 구성 및/또는 스위치 및/또는 보호되는 저장 매체와 결합될 수 있다. Note that optional procedural steps may be truncated or omitted, and the functions of the computing environments described herein may be mixed and matched as desired. In some examples, the decision to include or exclude optional steps or procedures may be determined by a threatening environment, sensitivity of data and / or behavior, demand for speed, storage device attributes (eg, magnetic storage media versus electronics). RAM) and other factors. For example, the functions of the control computing environment may be combined with the desktop computing environment and / or switch configuration and / or switch and / or protected storage media.

본 발명의 원리들은 임의의 특정한 컴퓨터 운영 시스템, 애플리케이션 프로그램, 사용자 인터페이스 또는 장치 타입이나 특성에 영향을 받지 않는다. 필수적으로 본 발명의 아키텍쳐, 시스템, 방법 및 절차들은 의도된 로직 또는 산술 연산들을 수행하기 위해 (이진 비트들의 형태와 같은) 정보를 사용할 수 있는 로직 회로를 가지는 임의의 전기적, 전자적 또는 광학적 장치에 적용할 수 있고, 그러므로 상이한 또는 추가적인 정보가 생성되도록 함으로써 변경되거나 또는 손상되기 쉬우며, 그 결과 의도된 연산들이 수행되지 않거나 또는 추가적인 연산들이 수행된다. 컴퓨터들, 정보 어플라이언스들, 셀룰러 또는 다른 모바일 전화기들, 자동차 전자 기기, 홈 어플라이언스들, GPS 수신기들, PDA들 등과 같은 최신 장치들에서, 로직은 제어기, 프로세서, 마이크로프로세서 또는 다른 프로그래밍 가능한 로직 회로들 또는 로직 수단 등이다; 그리고 사용된 정보는 컴퓨터 프로그램 명령들 및 선택적 데이터이다. 미래에는 현재 발전하는 광학적 계산 시스템들이 보다 상업화될 것이고, 본 발명은 광학적 계산 및 정보 처리 시스템들과 광학적 프로세서들에 적용가 능하게 될 것이다. The principles of the present invention are not affected by any particular computer operating system, application program, user interface or device type or characteristic. Essentially the architecture, systems, methods and procedures of the present invention apply to any electrical, electronic or optical device having a logic circuit that can use information (such as in the form of binary bits) to perform the intended logic or arithmetic operations It is then possible to change or corrupt by causing different or additional information to be generated, so that the intended operations are not performed or additional operations are performed. In modern devices such as computers, information appliances, cellular or other mobile phones, automotive electronics, home appliances, GPS receivers, PDAs, and the like, the logic may be a controller, processor, microprocessor or other programmable logic circuits. Or logic means; And the information used is computer program instructions and optional data. In the future, presently developing optical computing systems will become more commercial, and the present invention will be applicable to optical computing and information processing systems and optical processors.

여기의 설명은 컴퓨터들 및 계산 환경들에 대하여 집중하고 있으나, 본 발명은 명령들 및/또는 데이터를 해석하기 위한 로직을 가지는 모든 방식의 장치들 및 시스템들에 적용가능하며, 그러므로 바이러스들, 해커들, 스파이웨어, 사이버-테러 또는 다른 외부의 에이전트들에 의한 우연한 또는 의도적인 악성 공격에 영향을 받기 쉽다. While the description herein focuses on computers and computing environments, the present invention is applicable to all manner of devices and systems having logic for interpreting instructions and / or data, and thus viruses, hackers Are susceptible to accidental or intentional malicious attacks by agents, spyware, cyber-terrorism or other external agents.

이제 기존의 컴퓨터 시스템의 몇몇 특징들과 본 발명의 다양한 실시예들의 비교되는 양상들에 대하여 주의를 돌리도록 한다. 본 발명은 다수의 상이한 물리적 형태로 구현될 수 있기 때문에, 전형적인 시스템들이 어떻게 구현될 수 있는지에 대한 예들로서 다양한 실시예들이 설명된다. 이것들이 단지 이러한 특징들의 몇몇 또는 모두를 구체화하는 본 발명의 추가적인 실시예들이라는 것을 당업자는 이해할 것이다. Attention is now directed to some features of existing computer systems and to comparative aspects of various embodiments of the present invention. Since the present invention can be implemented in many different physical forms, various embodiments are described as examples of how typical systems may be implemented. Those skilled in the art will understand that these are merely additional embodiments of the invention that embody some or all of these features.

도 1은 종래 기술에 따른 전형적인 랩톱 (또는 다른) 컴퓨터 시스템(1900)을 나타낸다. 이러한 컴퓨터 시스템은 기술적으로 알려진 바와 같이 CPU(1508-1), (전형적으로 회전 자기 하드 디스크 드라이브의 형태인) 데이터 저장 장치(1502-1) 및 하나 이상의 주변 장치들(1541-1. 1541-2,...,1541-N)과 같은 전자 기기들과 임의의 기계적 구성요소들이 배치된 케이스 또는 하우징을 포함한다. 하우징 또는 케이스(1904)는 또한 전형적으로 디스플레이 스크린(1904), 키보드, 마우스와 같은 포인팅 장치를 마운트하거나 포함한다. 추가적인 외부 주변 장치들이 전형적으로 제공되는 다양한 접속 포트들을 통해 컴퓨터 시스템(1900)에 부착되거나 또는 연결 될 수 있다. 이러한 기존의 계산 시스템들에서, 데이터 저장 장치(1502-1)와 주변 장치들(1514-N)은, 기술적으로 알려진 바와 같이, 보통 시스템 및 주변 버스들을 통해 고정된 토폴로지로 CPU(1508-1)에 연결된다. 예를 들어, 전형적으로 하드 디스크 드라이브 또는 몇몇 고체 상태 메모리(RAM)인, 데이터 저장 장치(1502-1)는 시스템(1900)으로부터 물리적으로 제거되지 않는다면 항상 CPU에 연결된다. 이와 마찬가지로, CPU 연결 메모리는 제거되지 않는다면 항상 CPU에 연결되며, 대부분의 기존 계산 시스템들에서 (온-칩(on-chip) 캐쉬의 형태와 같은) 이러한 메모리의 특정 부분은 항상 영구적으로 CPU에 연결되어 있다. 유사하게, CDROM, DVD 판독기/기록기들, 네트워크 인터페이스 카드들(NIC), 모뎀들, 플로피-디스크 드라이버들(FDD), 무선 인터페이스 카드들 및 다른 주변 장치들과 같은 주변 장치들은 시스템에 연결되며 고정된 버스들 및 상호 접속들을 통해 CPU에 직접적으로 또는 간접적으로 연결된다. 이러한 상호 접속들은 항상 존재하기 때문에, 이들은 바이러스 또는 다른 악성 코드가 CPU, CPU 관련 메모리, BIOS 또는 데이터 저장 장치에 전달되는 기회를 제공할 수도 있다. 이러한 악성 코드는 즉시 동작하거나 또는 특정한 미래의 시간 또는 이벤트까지 유휴 상태로 대기할 수 있다. 이러한 취약성으로부터 면역 레벨을 달성하기 위한 수단이 추가적으로 본 발명의 실시예들과 관련하여 설명된다. 1 illustrates a typical laptop (or other) computer system 1900 according to the prior art. Such a computer system, as is known in the art, includes a CPU 1508-1, a data storage device 1502-1 (typically in the form of a rotating magnetic hard disk drive) and one or more peripheral devices 1541-1541-2. Electronic devices such as ..., 1541-N) and a case or housing in which any mechanical components are disposed. The housing or case 1904 also typically mounts or includes a pointing device, such as a display screen 1904, a keyboard, a mouse. Additional external peripheral devices may be attached or coupled to the computer system 1900 through various connection ports that are typically provided. In these existing computing systems, the data storage device 1502-1 and the peripherals 1504-N are, as is known in the art, typically have a CPU 1508-1 in a fixed topology over the system and peripheral buses. Is connected to. For example, data storage device 1502-1, which is typically a hard disk drive or some solid state memory (RAM), is always connected to the CPU unless it is physically removed from system 1900. Similarly, CPU-attached memory is always connected to the CPU unless it is removed, and in most existing computing systems, certain parts of this memory (such as on-chip caches) are always permanently connected to the CPU. It is. Similarly, peripheral devices such as CDROMs, DVD readers / writers, network interface cards (NICs), modems, floppy-disk drivers (FDD), air interface cards and other peripherals are connected to the system and fixed. Busses and interconnects are connected directly or indirectly to the CPU. Since these interconnections are always present, they may provide an opportunity for viruses or other malicious code to be delivered to the CPU, CPU related memory, BIOS or data storage device. Such malware can either run immediately or wait idle until a certain future time or event. Means for achieving immune levels from this vulnerability are further described in connection with embodiments of the present invention.

도 2는 데스크탑 컴퓨터 시스템, 랩톱 컴퓨터 시스템, 노트북 컴퓨터 시스템, PDA, (이동 전화기, 셀룰러폰, 위성 전화기, 무선-주파수 전송기 및/또는 수신기 등과 같은) 고정 또는 이동성 유선 또는 무선 통신 장치와 같은 예시적인 정보 어플라이언스를 나타낸다. 일반적으로 본 발명의 구조들, 방법들, 컴퓨터 프로그램들 및 컴퓨터 프로그램 프로덕트들은 제어기 또는 마이크로제어기, CPU, ASIC, 마이크로프로세서, 로직 회로 또는 임의의 다른 처리 엘리먼트와 같은 적어도 하나의 처리 엘리먼트들을 포함하거나 포함하도록 적응될 수 있는 임의의 전자 장치 또는 시스템에 적용가능하고 사용될 수 있다. (본 발명의 다른 실시예들이 설명되며 이들은 언급된 처리 엘리먼트 타입들의 임의의 결합을 포함하는 두 개 또는 다른 복수개의 이러한 처리 엘리먼트들을 사용할 수 있다.) 이러한 시스템들은, 예를 들어, 몇몇 미리 결정된, 동적으로 결정된 또는 다른 로직, 계산, 워드 처리, 이메일, 네트워크 계산, 음악 처리, 비디오 처리, 인터넷 브라우징, 음성 처리 또는 코딩 또는 디코딩, 디지털 카메라들을 통합하는 모바일 전화기들의 디지털 카메라들에서 그림 또는 이미지 획득 및 처리, GPS 신호 수신 및 처리, 위치 네비게이션, 엔터테인먼트와 같은 다양한 동작들을 수행하도록 구현될 수 있다. 여기에 제공된 설명에 따라 당업자는 많은 전자 장치들과 시스템들이 애플리케이션의 적용가능한 카테고리에 있다는 것을 이해할 것이다. 본 발명은 특정한 장점들을 제공하는데, 여기서 두가지 장점들이 개별적으로 달성될 수 있음에도 불구하고, 안티-바이러스 및 안티-해커 보호가 기대되며 또한 동시에 다수의 애플리케이션들을 처리하도록 기대된다. FIG. 2 illustrates exemplary desktop computer systems, laptop computer systems, notebook computer systems, PDAs, fixed or mobile wired or wireless communication devices (such as mobile phones, cellular phones, satellite phones, radio-frequency transmitters and / or receivers, etc.); Represents an information appliance. In general, the structures, methods, computer programs and computer program products of the present invention include or include at least one processing element such as a controller or microcontroller, a CPU, an ASIC, a microprocessor, a logic circuit or any other processing element. Applicable and applicable to any electronic device or system that can be adapted to do so. (Other embodiments of the present invention are described and they may use two or other plurality of such processing elements, including any combination of the processing element types mentioned.) Such systems may include, for example, some predetermined, Acquire pictures or images from digital cameras of mobile phones that incorporate digitally determined or other logic, calculation, word processing, email, network calculation, music processing, video processing, internet browsing, voice processing or coding or decoding, digital cameras, and It can be implemented to perform various operations such as processing, GPS signal receiving and processing, location navigation, entertainment. In accordance with the description provided herein, those skilled in the art will understand that many electronic devices and systems are in the applicable category of application. The present invention provides certain advantages, where both advantages can be achieved separately, anti-virus and anti-hacker protection is expected and also expected to handle multiple applications simultaneously.

하나의 계산 환경을 가지는 도시된 실시예에서, 또는 보다 바람직하게는 본 발명의 시스템 및 방법에 대한 대부분의 실시예들에서, 복수의 다중 독립적 계산 환경들(1508-1, 1508-2,...,1508-N)이 생성된다. 이러한 계산 환경들(1508)은 도 7 및 도 8의 실시예들에 있는 특정한 목적의 서브시스템들(1120)과 유사한 특징들을 가지고 있으며, 유사성은 본 발명의 여러가지 실시예들이 전체적으로 상세하게 설명된 후에 보다 명백해질 것이다. 독립적인 계산 환경들은 예를 들어 가능하면 기술적으로 공지된 마이크로프로세서 메모리, 전력 등과 같은 지원 구성요소들과 함께 임의의 결합된 하드-와이어드(hard-wired) 또는 프로그래밍 가능한 산술 및 로직 회로, 프로그래밍 가능한 마이크로제어기들, 프로세서들, 마이크로프로세서들, CPU들, ASIC들을 사용하여 물리적으로 구현될 수 있다. 적어도 특정 실시예들은 계산 (처리) 환경(1508)을 생성하기 위한 물리적 구조를 제공하기 위해 중앙 처리 유니트들(CPUs), 마이크로프로세서들, 마이크로제어기들, ASIC들 또는 몇몇 결합을 사용할 수 있다. 몇몇 예들에서, 처리 및 계산 태스크들의 복잡도는 원하는 계산 환경을 지원할 물리적 엘리먼트들을 지시할 것이다. 일 실시예에서 계산 환경을 생성하는 엘리먼트들은 동적으로 선택가능하고 구성가능하다. 이러한 선택 및 구성은 사용자 제어하에서, 또는 보다 일반적으로 몇몇 미리 결정되거나 또는 동적으로 결정되는 규칙들 또는 정책들에 따라서 선택적으로는 몇몇 측정된 계산 시스템의 물리적 또는 논리적 상태, 환경 조건들, 처리 요청 및 복잡도, 애플리케이션 프로그램의 크기 및 데이터 세트 크기에 따라서 계산 시스템(2000)의 자동 제어에 의해 이루어질 수 있다. (CPU, 메모리, 저장 매체, 비디오 프로세서, 코-프로세서(co-processor), 모뎀, 네트워크 또는 이더넷 프로세서 등과 같은) 예비적인 구성요소가 실패한 구성요소를 대체하기 위해 스위칭될 수 있도록 예비 구성요소들이 또한 제공될 수 있다. 동적 할당 및 구성은 또한 효율성을 제공하며, 모든 환 경들을 위해 모든 처리 기능들을 제공할 필요는 없기 때문에 여기서 많은 계산 환경들이 존재하여야 한다. In the illustrated embodiment having one computing environment, or more preferably in most embodiments of the system and method of the present invention, a plurality of multiple independent computing environments 1508-1, 1508-2, .. 1508-N). These computing environments 1508 have similar features to the specific purpose subsystems 1120 in the embodiments of FIGS. 7 and 8, with similarities after various embodiments of the present invention have been described in full detail. Will be more obvious. Independent computing environments may be used in any combination of hard-wired or programmable arithmetic and logic circuits, programmable micros, with supporting components such as, for example, technically known microprocessor memory, power, etc. It may be physically implemented using controllers, processors, microprocessors, CPUs, ASICs. At least certain embodiments may use central processing units (CPUs), microprocessors, microcontrollers, ASICs or some combination to provide a physical structure for creating computing (processing) environment 1508. In some examples, the complexity of processing and computational tasks will dictate the physical elements that will support the desired computational environment. In one embodiment, the elements that generate the computing environment are dynamically selectable and configurable. Such selection and configuration may be under the user's control or, more generally, depending on some predetermined or dynamically determined rules or policies, optionally the physical or logical state, environmental conditions, processing requests and some measured computing systems. Depending on the complexity, the size of the application program, and the size of the data set, this may be accomplished by automatic control of the computing system 2000. Spare components may also be switched so that preliminary components (such as CPU, memory, storage media, video processors, co-processors, modems, network or Ethernet processors, etc.) can be switched to replace failed components. Can be provided. Dynamic allocation and configuration also provides efficiency, and many computational environments must exist here because it is not necessary to provide all processing functions for all environments.

계산 환경들(1508)은 스위칭 명령들 또는 I/O 스위치 구성 데이터 또는 로직(1512)에 따라 선택적인 I/O 스위치 시스템(1510)을 통해 주변 장치들(1514-1,...,1514-N)에 연결되거나 선택적으로 연결가능할 수 있다. 본 발명의 특정 실시예들에서 선택적인 I/O 스위치 시스템(1510)에 대한 임의의 요구들은 특정한 주변 장치들의 특성들 및 보안 및 분리에 대한 요구되거나 원하는 정도와 같은 인자들에 따라 좌우될 수 있다. 몇몇 실시예들에서, 특정한 주변 장치들은 하나 또는 선택된 계산 환경들과 직접 연결되거나, 영구적으로 연결되거나, 영구적으로 연결되지 않거나, 또는 스위칭가능하게 연결될 수 있다. 도 2의 컴퓨터 시스템(2000)은 예를 들어 케이스 또는 프레임(1902)에 부착되고 유지되는 디스플레이 장치(1904)를 포함할 수 있다. 또한 컴퓨터 시스템(2000)은 음성 입력, 터치 스크린, 음성 또는 구두 컴퓨터 생성 음성 등과 같은 입력 및 출력을 위한 많은 대안들이 요구되지 않더라도 일반적으로 키보드와 포인팅 장치와 같은 입력 장치를 포함할 것이다. LCD 디스플레이는 또한 다른 장치들 사이에서 셀룰러폰들, PDA들 및 디지털 카메라들과 같은 장치들에 있는 컴퓨터 스크린들을 대체할 수 있다. Computing environments 1508 are peripherals 1514-1,... 151-4 through optional I / O switch system 1510 in accordance with switching commands or I / O switch configuration data or logic 1512. N) or optionally connectable. Any needs for an optional I / O switch system 1510 in certain embodiments of the invention may depend on the characteristics of the particular peripherals and factors such as the required or desired degree of security and isolation. . In some embodiments, certain peripheral devices may be directly connected, permanently connected, not permanently connected, or switchably connected to one or selected computing environments. The computer system 2000 of FIG. 2 may include, for example, a display device 1904 attached and held to a case or frame 1902. Computer system 2000 will also generally include input devices such as keyboards and pointing devices, although many alternatives for input and output such as voice input, touch screens, voice or verbal computer generated voice, and the like are not required. LCD displays can also replace computer screens in devices such as cellular phones, PDAs, and digital cameras, among other devices.

여기에 설명되는 다른 스위치들과 스위칭 시스템들과 같이, 스위칭은 원하는 스위칭을 달성하고 원하거나 또는 요구되는 전압, 전류, 분리, 임피던스, 터미네이션 및/또는 전기적 특성들을 유지하는 임의의 하나, 복수, 또는 다수의 기계적, 전기적, 전자적, 트랜지스터, 다이오드, 마이크로프로세서, 디지털 또는 아날로그일 수 있다. 예를 들어, CPU와 하드 디스크 드라이브를 연결하며 연결을 끊는 스위치는 CPU 또는 하드 디스크 드라이브에 손상을 주지 않고 연결 및 연결을 끊는 동작을 수행할 것이다. 몇몇 장치들을 가지는 몇몇 상황들에서, 스위칭은 기술적으로 알려진 바와 같이 전력 라인을 인터럽트시키거나 동작을 정지시키는 다른 방식들이 아니라, 장치 또는 장치의 일부를 턴오프하거나 그렇지 않으면 동작 전압 및 전류를 제한함으로써, 장치에 대한 클록을 정지시킴으로써, 데이터 라인 또는 통신 경로를 인터럽트시킴으로써 달성될 수 있다. 본 명세서의 다른 부분에서 설명되는 바와 같이, 몇몇 예들에서, 이러한 스위칭 동작들은 계산 시스템의 구성요소들과 다른 계산 환경들(1508-1,...,1508-N) 사이에서 보장된 레벨의 분리도를 제공하도록 의도된다. As with the other switches and switching systems described herein, switching is any one, plurality, or that achieves the desired switching and maintains the desired, or desired, voltage, current, isolation, impedance, termination and / or electrical characteristics. It can be a number of mechanical, electrical, electronic, transistors, diodes, microprocessors, digital or analog. For example, a switch that connects and disconnects the CPU and hard disk drive will perform the connection and disconnection operations without damaging the CPU or hard disk drive. In some situations with several devices, switching is not by other means of interrupting or stopping the power line as is known in the art, but by turning off the device or part of the device or otherwise limiting the operating voltage and current, By stopping the clock for the device, it can be accomplished by interrupting the data line or communication path. As described elsewhere herein, in some examples, these switching operations are a guaranteed level of isolation between components of the computing system and other computing environments 1508-1,..., 1508 -N. It is intended to provide.

(도 7 및 도 8의 실시예에서 특별한 목적의 서브시스템들(1120)로서 지칭되는) 복수의 계산 환경들은 또한 스위칭 명령들 또는 데이터 저장 스위칭 구성 데이터 또는 로직(1506)에 따라 데이터 저장 스위치 시스템(1504)을 경유하여 데이터 저장 스위치 시스템(1504)을 통해 하나 이상의 데이터 저장 장치들(1502)에 선택가능하게 연결되거나 또는 연결이 가능할 수 있다. 데이터 저장 장치는 회전 자기 하드 디스크 드라이브들, 회전 또는 비-회전 광학 저장 미디어, CD들, DVD들, 홀로그래픽 레코딩, 나노기술 기반 저장 장치, 고체 상태 메모리(RAM, ROM, EEPROM, CMOS 등), 분자 및 원자 저장 장치, 화학 메모리 또는 임의의 다른 저장 장치 또는 시스템을 포함하나 이에 한정되지는 않는 기술적으로 알려진 또는 개발될 저장 장치들의 임의의 결합일 수 있다. 개별적인 논리적 저장 엘리먼트들(1502-1, 1502- 2,...,1502-N)은 하나의 물리적 장치 또는 물리적 장치들의 임의의 결합 상에서 또는 이들 내에서 구성되거나 또는 분배될 수 있으며, (예를 들어) 하나의 논리적 저장 장치(1502-2)에 대하여, 다수의 상이한 물리적 장치들이 원하거나 또는 요구되는 저장 용량, 데이터를 장치로 복사하는 속도, 데이터를 저장 장치에 기록하는 속도, 소거 및/또는 삭제 또는 겹쳐쓰기 속도 및 성능 또는 다른 동작 특성들을 얻기 위해 사용될 수 있다. 예를 들어, 노트북 컴퓨터에 대한 일 실시예에서, 몇몇 데이터 저장 장치(1502)는 하나의 물리적 하드 디스크 드라이브의 논리적 파티션들로서 구현된다. 다른 실시예에서, 모든 데이터 저장 장치(1502)는 고속 판독, 기록 및 삭제 속도 성능을 제공하기 위해 고체 상태 메모리 장치들을 통해 구현된다. 다양한 종류의 곱셈-포트 메모리 타입들 및 아키텍쳐들이 사용가능하고 사용될 수 있다. 예를 들어, 보다 기존의 메모리 칩들뿐만 아니라 램버스 메모리가 사용될 수 있다. 또다른 실시예에서, 여러개의 데이터 저장 장치(1502)는 멀티-디스크 하드 자기 디스크 드라이브 상의 개별적인 플래터들 또는 디스크들로서 구현된다. 이러한 드라이브들은 데이터 경로들의 분리되도록 보장하기 위해 하나의 제어기 및 판독/기록 헤드들의 제어된 세트를 가질 수 있거나, 또는 개별적인 제어기들과 선택적으로 독립적으로 동작가능한 액추에이터 암(arm)들 및 판독/기록 헤드들을 가질 수 있으며, 그 결과 (바이러스, 로봇 또는 컴퓨터 해커로부터의) 악성 코드는 하나의 계산 환경으로부터 다른 계산 환경으로 이동할 수 없고 여러가지 계산 환경들에 대한 의도된 분리 및 독립성을 훼손할 수 없다. The plurality of computational environments (referred to as special purpose subsystems 1120 in the embodiment of FIGS. 7 and 8) may also be used in accordance with switching instructions or data storage switching configuration data or logic 1506 to store a data storage switch system ( It may be selectable or connectable to one or more data storage devices 1502 via data storage switch system 1504 via 1504. Data storage devices include rotating magnetic hard disk drives, rotating or non-rotating optical storage media, CDs, DVDs, holographic recording, nanotechnology based storage devices, solid state memory (RAM, ROM, EEPROM, CMOS, etc.), It can be any combination of technically known or developed storage devices, including but not limited to molecular and atomic storage devices, chemical memory or any other storage device or system. Individual logical storage elements 1502-1, 1502- 2,..., 1502-N can be configured or distributed on or within one physical device or any combination of physical devices, For example, for one logical storage device 1502-2, the storage capacity desired or required by a number of different physical devices, the rate at which data is copied to the device, the rate at which data is written to the storage device, erased and / or It can be used to obtain erase or overwrite speed and performance or other operating characteristics. For example, in one embodiment for a notebook computer, some data storage devices 1502 are implemented as logical partitions of one physical hard disk drive. In another embodiment, all data storage devices 1502 are implemented via solid state memory devices to provide high speed read, write and erase speed performance. Various kinds of multiply-port memory types and architectures are available and can be used. For example, Rambus memory may be used as well as more conventional memory chips. In another embodiment, multiple data storage devices 1502 are implemented as separate platters or disks on a multi-disk hard magnetic disk drive. Such drives may have one controller and a controlled set of read / write heads to ensure that the data paths are separated, or actuator arms and read / write heads that are selectively operable independently of individual controllers. As a result, malicious code (from viruses, robots, or computer hackers) cannot move from one computing environment to another and undermine the intended isolation and independence of various computing environments.

(예를 들어, PDA들, 이동 전화기들 또는 다른 통신 장치들과 같은) 물리적으 로 작은 장치들에 대하여, 낮은 에너지 소비, 보다 작은 크기, 보다 낮은 열발생, 보다 빠른 액세스 속도, 기록/판독 속도 및 삭제 속도 때문에, 기계적인 이동 부분들을 가지는 메모리와 비교하여 오직 고체 상태 메모리를 사용하는 것이 바람직하다고 예상된다. 이러한 고체 상태 메모리는 장치(예를 들어, 이동 전화기)의 내부에 있을 수 있고, (마이크로소프트 윈도우 운영 시스템(OS) 및 팜파일롯 OS 기반 PDA; PDA 셀폰 결합; PDA, 셀폰 및 디지털 카메라 결합 장치; 디지털 카메라; 셀폰; 디지털 오디오 및/또는 비디오 리코더 및 플레이어; MP3 플레이어; 및 기술적으로 알려진 다른 장치들 및 메모리 시스템들에 대한 기본적인 또는 추가적인 메모리로서 이용가능한 콤팩트 메모리 카드들 또는 모듈들, 소니 스마트미디어를 사용함으로써) 기계적 또는 전기적 커넥터 또는 결합을 통해 플러깅 가능하도록 외부에 위치할 수 있다. 또한 사용될 수 있는 고체 상태가 아닌 작고 저렴한 저장 장치들 및 서브시스템들이 있다. For physically small devices (eg, PDAs, mobile phones or other communication devices), low energy consumption, smaller size, lower heat generation, faster access speed, write / read speed And because of the erase speed, it is expected that it would be desirable to use only solid state memory as compared to memory having mechanical moving parts. Such solid state memory may be internal to a device (eg, a mobile phone) and may include (Microsoft Windows Operating System (OS) and PalmPilot OS based PDAs; PDA cell phone coupling; PDA, cell phone and digital camera coupling devices); Compact memory cards or modules available as basic or additional memory for digital cameras, cell phones, digital audio and / or video recorders and players, MP3 players, and other devices and memory systems known in the art, Sony SmartMedia By use) and externally pluggable via mechanical or electrical connectors or couplings. There are also small, inexpensive storage devices and subsystems that may not be used.

도 1의 기존의 컴퓨터 시스템(1900)과 도 2의 본 발명의 실시예(2000) 사이의 비교는 여러가지 차이점들을 보여준다. 기존의 시스템에서, 데이터 저장 장치(1502-1)는 하나 이상의 버스들 또는 내부 접속들을 통해 CPU(1508-1)에 직접적으로 연결되거나 또는 몇몇 고정되고 영구적인 접속들을 통해 CPU(1508-1)에 연결된다. (기계적이고 수동적인 접속 해제는 몇몇 예들에서 몇몇 장치 타입들에 대하여 가능할 수 있으나, 처리 동작에 따른 시간에 특정한 저장 장치, 주변 장치 또는 다른 시스템 구성요소에 대한 필요에 따라 컴퓨터가 동작하는 동안에 프로그램 제어 하에서는 가능하지 않을 수 있다.) 기존 시스템(1900)과 비교하여, 컴퓨터 시스템 (2000)의 여러가지 데이터 저장 장치들(1502-1,...,1502-N)은 (데이터 저장 스위치 시스템(1504)의 상태에 따라) 데이터 저장 스위치 시스템을 통해 계산 환경(예를 들어, CPU와 같이 그러나 이에 한정되지는 않는 몇몇 처리 또는 계산 기능을 포함하는 계산 환경)에 연결된다. 일반적으로 데이터 저장 장치(1502) 중 임의의 하나는 계산 환경들 중 임의의 하나에 연결될 수 있거나, 또는 어떤 계산 환경에도 연결되지 않을 수 있다. 보다 전형적으로, 임의의 주어진 데이터 저장 장치는 결합 또는 접속 및 특정한 데이터 저장과 같은 사항에 대한 필요성이 존재하면 간헐적으로 계산 환경으로 결합되거나 또는 계산 환경에 접속될 수 있으며, 특정한 데이터 저장 장치(1502)는 계산 환경이 존재하는 동안에 변화될 수 있다. 일반적인 디폴트는 액세스가 구체적으로 제어기 또는 제어 계산 환경에 의해 원해지고, 요구되며 허용되지 않는다면 이러한 데이터 저장 장치들과 다른 장치들이 결합되거나 또는 연결되지 않도록 하는 것이다. The comparison between the existing computer system 1900 of FIG. 1 and the embodiment 2000 of the present invention of FIG. 2 shows several differences. In existing systems, the data storage device 1502-1 is directly connected to the CPU 1508-1 via one or more buses or internal connections or to the CPU 1508-1 via some fixed and permanent connections. Connected. (Mechanical and manual disconnection may be possible for some device types in some examples, but program control while the computer is running as needed for a particular storage device, peripheral device or other system component at a time due to processing operations. In comparison with the existing system 1900, the various data storage devices 1502-1,..., 1502-N of the computer system 2000 are (data storage switch system 1504). A data storage switch system is coupled to a computing environment (e.g., a computing environment that includes some processing or computing functionality such as, but not limited to, a CPU). In general, any one of the data storage devices 1502 may be connected to any one of the computing environments, or may not be connected to any computing environment. More typically, any given data storage device may be intermittently coupled to the computing environment or connected to the computing environment if there is a need for such things as combining or connecting and storing specific data. Can be changed while the computing environment is present. A common default is to prevent such data storage devices and other devices from being combined or connected unless access is specifically desired by the controller or control computing environment and is required and allowed.

또한, 본 발명의 실시예들에서, 특정한 CPU와 특정한 데이터 저장 장치(예를 들어, 하드 디스크 드라이브 또는 고체 상태 메모리 칩)와 같은 물리적 구성요소들 사이의 페어링(paring) 및 스위칭 접속은 상이한 처리 동작들에 대하여 동적으로 변할 수 있다(그러나 동적인 변화가 요구되는 것은 아니다). 마찬가지로, 선택적인 I/O 스위치 시스템(1510) 및 선택적인 I/O 스위치 구성(1512)을 포함하는 적어도 몇몇 실시예들에서, 계산 환경들(1508)은 오직 I/O 스위치 시스템(1510)을 통해서만 주변 장치들(1514)로 결합된다. 스위칭가능한 접속 및 결합은 하나 이상의 전기적 접속을 변경하고, 인터페이스 또는 주변 장치로부터 전력을 제거하고, 주변 장치의 동작을 위해 필요한 클록 신호를 중지하는 과정을 포함하는 방식들과 같은 임의의 다양한 스위칭 방식들과, 주변 장치가 계산 환경에 대하여 존재하거나 액세스 가능하지 않도록 하기 위해 기술적으로 알려진 다른 방식들, 구조들 및 방법들을 포함할 수 있다. In addition, in embodiments of the present invention, paring and switching connections between a particular CPU and physical components such as a particular data storage device (e.g., a hard disk drive or a solid state memory chip) may have different processing operations. They can change dynamically (but not require dynamic change). Likewise, in at least some embodiments, including optional I / O switch system 1510 and optional I / O switch configuration 1512, computing environments 1508 can only utilize I / O switch system 1510. Only through the peripheral devices 1514. Switchable connections and couplings can be any of a variety of switching schemes, such as those that include changing one or more electrical connections, removing power from an interface or peripheral, and stopping the clock signal needed for operation of the peripheral. And other ways, structures, and methods known in the art to ensure that the peripheral device is not present or accessible to the computing environment.

데이터 저장 장치들(1502) 및/또는 주변 장치들(1514)을 인에이블시키거나 디스에이블시키는(또는 접속 및 접속 해제시키는) 동작들은 (인에이블먼트 또는 디스에이블먼트가 컴퓨터 시스템의 사용자에 의한 명령 또는 다른 작업의 결과일 수 있음에도 불구하고) 인간 사용자의 간섭없이 프로그램 제어에 따라 자동적으로 발생할 수 있으며, 인에이블먼트 또는 디스에이블먼트는 본 발명의 컴퓨터 시스템(2000)의 동작을 위해 요구될 때 초당 많은 횟수동안 발생할 수 있다는 것을 이해해야 할 것이다. 예를 들어, 컴퓨터는 100 MHz에서 동작하는 인터페이스들 또는 버스들을 가지며, 데이터 저장 장치들과 주변 장치들은 필요에 따라 인터페이스 또는 버스를 통해 동작들이 개시되고, 실행되며 완료되도록 스위칭 가능하게 결합되거나 결합 해제될 수 있다. 예를 들어, 스위칭은 적어도 1 Hz, 10 Hz, 100 Hz, 1KHz, 1 MHz 및 10 MHz의 레이트들에서 발생할 수 있을 뿐만 아니라, 보다 높은 레이트와 보다 낮은 레이트 및 임의의 중간 레이트에서 발생할 수 있다. 이러한 설명으로부터, 데이터 저장 스위치 시스템(1504) 및 (존재한다면) I/O 스위치 시스템(1510)은 상이한 CPU들을 데이터 저장 장치들 및/또는 주변 장치들로 인에이블 또는 접속시키거나 디스에이블 또는 접속 해제시키기 위해 동시에 스위칭할 수 있다. The operations that enable, disable (or connect and disconnect) data storage devices 1502 and / or peripherals 1514 may include instructions that enable or disable an instruction by a user of the computer system. Or even a result of other work), which can occur automatically according to program control without human user intervention, and enablement or disabling is required per second for operation of the computer system 2000 of the present invention. It should be understood that this can occur many times. For example, a computer has interfaces or buses operating at 100 MHz, and data storage devices and peripherals are switchably coupled or uncoupled so that operations can be initiated, executed and completed via the interface or bus as needed. Can be. For example, switching can occur at rates of at least 1 Hz, 10 Hz, 100 Hz, 1KHz, 1 MHz and 10 MHz, as well as at higher and lower rates and at any intermediate rate. From this description, data storage switch system 1504 and (if present) I / O switch system 1510 enable or connect or disable or disconnect different CPUs to data storage devices and / or peripherals. Can be switched simultaneously.

전형적인 기존의 컴퓨터 시스템(1900)에서, 주변 장치들(1514)은 CPU(1508) 로 직접 접속되며 컴퓨터 시스템의 동작 동안에 스위칭 가능하게 접속 및 접속 해제(또는 인에이블 및 디스에이블)되지 않는다. 데이터 저장 장치들과 주변 장치들의 접속 해제는 또한 이들이 다른 계산 환경들에서 사용가능하도록 할 수 있다는 것을 이해해야 할 것이다. 몇몇 주변 장치가 핫-플러그(hot-plug) 가능한 기존의 시스템들에서, 주변 장치를 플러깅하는 것은 인간의 사용자 인터랙션을 요구하는 수동 작업이다. 기존의 계산 시스템들 및 방법들과 본 발명의 시스템 및 방법 간의 다른 차이점들은 여기에 설명된 본 발명의 다른 실시예들에 대한 설명에서 보다 용이하게 이해될 것이다. In a typical existing computer system 1900, peripherals 1514 are directly connected to the CPU 1508 and are not switchably connected and disconnected (or enabled and disabled) during operation of the computer system. It will be appreciated that disconnection of data storage devices and peripheral devices may also make them available to other computing environments. In existing systems where some peripherals are hot-pluggable, plugging in peripherals is a manual task that requires human user interaction. Other differences between existing computational systems and methods and the system and method of the present invention will be more readily understood in the description of other embodiments of the present invention described herein.

도 3은 다수의 독립적인 계산 환경들(1508-1,...,1508-N)을 지원하기 위한 아키텍쳐 및 시스템(1500)의 개략적인 다이어그램을 나타내며, 이러한 시스템은 악성 바이러스, 로봇 또는 해킹에 의해 사용자 데이터에 손상을 주는 오염 및 공격을 방지하기 위해 특정한 처리 동작들을 개별화하고 분리하도록 바람직하게 사용될 수 있는 다수의 독립적인 계산 환경들을 지원할 수 있는 컴퓨터 시스템을 포함한다. 이러한 컴퓨터 시스템(1500)은 복수의 데이터 저장 장치들(1502), 데이터 저장 스위치 시스템(1504)(및 선택적인 데이터 저장 스위치 구성 유니트(1506), 선택적인 I/O 스위치 시스템 및 I/O 스위치 구성 유니트를 통해 계산 환경들(1508)에 연결되는 하나 또는 복수의 주변 장치들(1514)을 포함하는 I/O 시스템 및 하나 이상의 계산 환경들(1508)을 포함할 수 있다. 3 shows a schematic diagram of an architecture and system 1500 for supporting a number of independent computing environments 1508-1,. Computer systems that can support a number of independent computing environments that can be preferably used to individualize and isolate specific processing operations to prevent contamination and attacks that damage user data. This computer system 1500 includes a plurality of data storage devices 1502, a data storage switch system 1504 (and an optional data storage switch configuration unit 1506, an optional I / O switch system and an I / O switch configuration). One or more computing environments 1508 and an I / O system including one or a plurality of peripheral devices 1514 that are connected to the computing environments 1508 through a unit.

하나 이상의 데이터 저장 장치들(1502)은 컴퓨터 시스템과 연결될 수 있다. 데이터 저장 장치(1502)는 메모리 영역을 나타낸다. 데이터 저장 장치는 자기 하 드 디스크 드라이브, 광학 저장 미디어, 고체 상태 메모리, 다른 형태의 데이터 저장 장치 또는 이러한 데이터 저장 미디어 타입들의 결합과 같은 임의의 타입의 저장 미디어에 의해 구현될 수 있다. 데이터 저장 장치는 디스크 드라이브 및/또는 하나 이상의 디스크 드라이브의 일부분, 및/또는 결합 또는 물리적 디스크 드라이브들에 대응하는 메모리 영역을 나타낼 수 있다. 본 발명의 일 실시예에 따르면, 데이터 저장 장치(1502)는 마스터 템플릿의 사본을 포함할 수 있다. 본 발명의 시스템과 관련하여 이용될 수 있는 방법의 일 실시예는 도 4와 관련하여 설명된다. One or more data storage devices 1502 may be coupled with a computer system. The data storage device 1502 represents a memory area. The data storage device may be implemented by any type of storage media, such as magnetic hard disk drives, optical storage media, solid state memory, other forms of data storage, or a combination of these data storage media types. The data storage device may represent a memory area corresponding to a disk drive and / or a portion of one or more disk drives, and / or combined or physical disk drives. According to one embodiment of the invention, the data storage device 1502 may include a copy of the master template. One embodiment of a method that may be used in connection with the system of the present invention is described in connection with FIG.

다수의 독립적인 계산 환경들을 지원할 수 있는 컴퓨터 시스템을 사용하기 위한 방법의 실시예Embodiments of a method for using a computer system capable of supporting multiple independent computing environments

도 4, 도 5 및 도 6에서는, 본 발명에 따른 컴퓨터 시스템의 예시적인 실시예들의 셋업, 초기화 및 동작을 위한 방법들 및 동작의 양상에 대한 설명에 대하여 주의를 기울이도록 한다. 예시적인 방법들 및 절차들은 적어도 도 2 및 도 3의 실시예들에서 도시된 아키텍쳐들 및 시스템들에 대하여 적용가능하며, 도 9-17과 관련하여 도시되고 설명된 실시예들과 같은 그러나 이에 한정되지는 않는, 본 발명의 다른 실시예들에 대한 다소 상이한 구조로 인한 적절한 변형들이 이루어진다는 것을 이해해야 할 것이다. 이번 섹션에서 본 발명의 특정한 양상들 및 실시예들이 설명되는 명세서를 통해 제공되는 헤딩들과 서브헤딩들은 독자의 편의를 위한 기준으로서 의도된 것이며, 본 발명의 양상들과 실시예들은 명세서, 도면 및 청구범위를 통해서 설명되며, 명세서, 도면 및 청구범위 전체는 본 발명을 이해하기 위해 고려되어야 한다는 것을 이해해야 할 것이다. 4, 5 and 6, attention is given to a description of aspects of methods and operations for the setup, initialization and operation of exemplary embodiments of a computer system according to the present invention. Exemplary methods and procedures are applicable to the architectures and systems shown in at least the embodiments of FIGS. 2 and 3, including but not limited to the embodiments shown and described with respect to FIGS. 9-17. It should be understood that appropriate modifications are made due to the somewhat different structure of other embodiments of the invention, which are not intended. The headings and subheadings provided in the specification through which certain aspects and embodiments of the invention are described in this section are intended as a reference for the convenience of the reader, and the aspects and embodiments of the invention are set forth in the specification, drawings and It is to be understood that the description, drawings and claims as a whole are to be considered in order to understand the invention as described through the claims.

본 발명의 일 실시예에서, 계산 환경(들)의 생성 및 설정, 초기화, 스위치 구성, 처리 제어, 하나 이상의 계산 환경들의 운용, 계산 환경들 내에서 사용자 및/또는 제어 동작들 수행, 사용자 처리의 완료, 화일 저장 및 계산 환경에서의 처리 종료를 위한 본 발명의 방법 및 구성요소 절차들은 바람직하게는 컴퓨터 프로그램 또는 실제 미디어 상에 저장되고 본 발명의 방법 및 시스템의 방법론적인 단계들을 수행하기 위한 컴퓨터 프로그램 명령들을 포함하는 컴퓨터 프로그램 프로덕트로서 구현될 수 있다. 다른 실시예들은 이러한 절차들의 일부 또는 전부를 수행하기 위해 하드웨어 로직, 펌웨어 및/또는 소프트웨어의 결합을 사용할 수 있다. In one embodiment of the invention, the creation and setting of the computing environment (s), initialization, switch configuration, process control, operation of one or more computing environments, performing user and / or control operations within the computing environments, of user processing The method and component procedures of the present invention for completion, file storage, and termination of processing in a computing environment are preferably stored on a computer program or physical media and a computer program for performing the methodological steps of the method and system of the present invention. It can be implemented as a computer program product containing instructions. Other embodiments may use a combination of hardware logic, firmware and / or software to perform some or all of these procedures.

본 발명의 양상들이 이제 설명된다. 실시예의 특정한 선택적인 절차들 및 단계들을 포함하는, 본 발명의 방법 및 절차들의 이러한 그리고 다른 양상들은 본 명세서를 통해 특정한 실시예들과 관련하여 설명된다. Aspects of the present invention are now described. These and other aspects of the methods and procedures of the present invention, including specific optional procedures and steps of the embodiment, are described herein in connection with specific embodiments.

초기 시스템 스타트업 및 계산 환경 설정Initial system startup and calculation preferences

도 4와 관련하여, 본 발명의 방법에 대한 일 실시예에 따르면, 다수의 독립적인 계산 환경들(1508-N)을 사용하는 것은 시스템 스타트업을 개시하는 과정(1602), 1604에서 I/O 스위치 시스템 구성들(1512)과 데이터 저장 스위치 구성들(1506)을 구성하는 과정, 통신을 지원하기 위해 I/O 스위치 시스템(1510)을 구성하는 과정, 통신을 지원하기 위해 데이터 저장 스위치 시스템(1504)을 구성하는 과정, 1623에서 제어 처리를 수행하고 1631에서 사용자 처리를 수행하는 과정을 포함 할 수 있다. 전형적으로 제어 처리는 또한 1615에서의 제어 셋업 처리과 1621에서의 제어 저장 처리를 포함할 수 있다. With reference to FIG. 4, in accordance with an embodiment of the method of the present invention, using multiple independent computing environments 1508 -N may include I / O at system startup 1602, 1604. Configuring switch system configurations 1512 and data storage switch configurations 1506, configuring I / O switch system 1510 to support communications, and data storage switch system 1504 to support communications. ), The control process may be performed in 1623 and the user process may be performed in 1631. Typically the control process may also include a control setup process at 1615 and a control store process at 1621.

1602에서 시스템 셋업을 개시하는 과정은 컴퓨터 시스템의 공지된 부트 시퀀스들과 유사한 초기 부트 시퀀스를 포함할 수 있다. 부트 시퀀스는 또한, 예를 들어, 데이터 저장 스위치 구성 및/또는 I/O 스위치 구성과 같은 하나 이상의 스위치 구성을 1604에서 정의하고 그리고/또는 수정하기 위한 지원을 포함할 수 있다. 각각의 스위칭 시스템의 초기 구성은 대응하는 스위치 구성(1604)에 따라 하나 이상의 소스와 하나 이상의 목적지 사이에서 하나 이상의 통신 경로들을 설정하기 위해 개시될 수 있다. 스위치들의 구성은 또한 도 6에 도시된 바와 같이 계산 환경들을 개시하기 위한 절차와 함께 데이터 저장 스위치(1804)를 구성하고 I/O 시스템 스위치(1806)를 구성하기 위한 절차들을 포함할 수 있다. (본 발명의 다른 실시예들은 초기에 구성할 때나 또는 계산 환경을 재구성할 때 데이터 저장 장치 및 I/O 스위치들을 구성하기 위한 결합된 절차를 제공한다.)Initiating a system setup at 1602 can include an initial boot sequence similar to known boot sequences of a computer system. The boot sequence may also include support for defining and / or modifying one or more switch configurations, such as, for example, data storage switch configuration and / or I / O switch configuration, at 1604. Initial configuration of each switching system may be initiated to establish one or more communication paths between one or more sources and one or more destinations in accordance with the corresponding switch configuration 1604. The configuration of the switches may also include procedures for configuring the data storage switch 1804 and configuring the I / O system switch 1806 with the procedure for initiating the computing environments as shown in FIG. 6. (Other embodiments of the present invention provide a combined procedure for configuring data storage and I / O switches when initially configuring or reconfiguring the computing environment.)

계산 환경을 개시하기 위한 절차의 일 실시예를 나타내는 도 5와 관련하여, 본 발명의 일 실시예에 따르면, 시작 동작(1702) 동안에 시스템 스타트업을 시작하기 위해 물리적 스위치(1704)를 통해 전력이 인가될 수 있다. 시스템 스타트업에서, CMOS 메모리(1708)는 초기 프로세스 및/또는 부트 시퀀스의 하나 이상의 단계를 정의하기 위해 사용될 수 있다. 부트 시퀀스(1706) 또는 몇몇 다른 초기화 시퀀스 또는 절차는 통신적으로 소스들 및 목적지들을 연결하기 위한 구성을 적용 및/또는 수정하도록 스위치 시스템 구성을 설정하고 그 다음에 대응하는 스위치 시스 템을 초기화하기 위해 CMOS(1708) 또는 다른 메모리 저장 장치에 연결된 정보를 이용할 수 있다. 하나 이상의 계산 환경들은 또한 1602에서 시스템 스타트업에 의해 개시될 수 있다. With reference to FIG. 5, which illustrates one embodiment of a procedure for initiating a computational environment, in accordance with one embodiment of the present invention, power is passed through a physical switch 1704 to initiate system startup during a startup operation 1702. Can be applied. In system startup, CMOS memory 1708 may be used to define one or more steps of an initial process and / or boot sequence. The boot sequence 1706 or some other initialization sequence or procedure may be used to set up the switch system configuration and then initialize the corresponding switch system to apply and / or modify the configuration for communicatively connecting sources and destinations. Information connected to the CMOS 1708 or other memory storage device may be used. One or more computing environments may also be initiated by system startup at 1602.

도 4와 관련하여, 1608 및 1622에서 계산 환경을 설정하는 과정은 I/O 스위치 시스템 구성들 및 데이터 저장 스위치 구성들을 구성하는 과정, 통신을 지원하기 위해 I/O 스위치 시스템을 구성하는 과정 및 통신을 지원하기 위해 데이터 저장 스위치 시스템을 구성하는 과정을 포함할 수 있다. 4, the process of setting up the computing environment at 1608 and 1622 includes configuring I / O switch system configurations and data storage switch configurations, configuring the I / O switch system to support communication, and communicating. It may include the process of configuring the data storage switch system to support the.

일 실시예에 따르면, 두 개의 데이터 저장 장치들(예를 들어, 데이터 저장 장치 1502-1, 1502-N)은 계산 환경과 연결될 수 있다. 제 1 데이터 저장 장치는 계산 환경의 처리 작업들을 지원하기 위한 운영 시스템을 포함할 수 있다. 제 2 데이터 저장 장치는 계산 환경에 의해 사용되거나 동작될 수 있는 다양한 정보를 포함할 수 있다. 상기 다양한 정보는, 예를 들어, 특정한 사용자 정보 및/또는 구성 정보를 포함할 수 있다. 특정한 사용자 정보는 사용자에 의해 편집되어야 하는 문서를 포함할 수 있다. 구성 정보는 데이터 저장 스위치 구성 및/또는 I/O 스위치 구성을 구성하기 위해 제어되는 계산 환경에 의해 이용될 수 있다. According to one embodiment, two data storage devices (eg, data storage devices 1502-1 and 1502-N) may be connected to a computing environment. The first data storage device can include an operating system for supporting processing tasks of the computing environment. The second data storage device can include various information that can be used or operated by the computing environment. The various information may include, for example, specific user information and / or configuration information. Specific user information may include documents that must be edited by the user. The configuration information may be used by the controlled computing environment to configure the data storage switch configuration and / or the I / O switch configuration.

전형적으로 제어 계산 환경은 임의의 사용자 계산 환경들이 설정되기 전에 1608에서 설정된다. 몇몇 실시예들에서, 제어 계산 환경 또는 등가물은 초기화를 통해 설정될 수 있다. 제 1 제어 계산 환경은 위에서 설명된 바와 같이 부트 시퀀스에 의해 설정될 수 있다. 제 1 데이터 저장 장치는 컴퓨터 운영 시스템을 지원할 수 있다. 제 2 데이터 저장 장치는 보호되는 데이터 저장 장치를 나타낼 수 있 다. 데이터 저장 장치들이 계산 환경에 연결된 후에, 계산 환경은 사용자가 계산 환경과 상호 작용하도록 허용하기 위해 부팅될 수 있다. 사용자 입력들은 제어 계산 환경의 특성들(예를 들어, 지역 특성 및 계산 환경 식별 특성)에 대응하는 입력들을 제어 계산 환경으로 전달하기 위해 구성된 I/O 스위치 시스템(1510)을 통해 수신될 수 있다. 유사하게, 제어 계산 환경으로부터의 출력들은 제어 계산 환경에 대응하는 특성들에 기반하여 (예를 들어, 주변 장치(1514-1,...,1514-N)와 같은) 주변 장치로 전송될 수 있다. 이에 따라, 제어 계산 환경은 제 1 데이터 저장 장치로부터 부팅되고 보호된 데이터 저장 장치로 액세스할 수 있다. 그 결과, 사용자는 제어 계산 환경과 상호 작용할 수 있다. Typically the control computing environment is set up at 1608 before any user computing environments are established. In some embodiments, the control calculation environment or equivalent can be established through initialization. The first control computing environment may be set by the boot sequence as described above. The first data storage device can support a computer operating system. The second data storage device can represent a protected data storage device. After the data storage devices are connected to the computing environment, the computing environment can be booted to allow the user to interact with the computing environment. User inputs may be received via an I / O switch system 1510 configured to deliver inputs corresponding to characteristics of the control computing environment (eg, local and computing environment identification characteristics) to the control computing environment. Similarly, outputs from the control computing environment may be sent to the peripheral device (eg, peripheral devices 1514-1,... 1151-N) based on characteristics corresponding to the control computing environment. have. Thus, the control computing environment can access a booted and protected data storage device from the first data storage device. As a result, the user can interact with the control computing environment.

이제 본 발명의 아키텍쳐, 시스템 및 방법의 실시예들 내에서 선택적인 "특성들"을 이용하기 위한 옵션에 대하여 주의를 기울이도록 한다. 특성들에 대한 참조들은 본 명세서의 다른 부분들에서 이루어지며 바람직하게는 선택적인 특징들이 사용된다. 일 실시예에서, 적어도 하나의 특성, 속성, 서술자 또는 특징은 (시스템의 다른 구성요소들의 특성들을 나타내기 위해서뿐만 아니라) 각각의 소스 및 목적지를 나타내기 위해 사용될 수 있다. 이러한 특성은 물리적 식별자 및/또는 논리적 식별자를 나타낼 수 있다. 위에서 설명된 바와 같이, 예시적인 IDE 디스크 드라이브 저장 장치에 따르면, 각각의 IDE 케이블은 물리적 스위치와의 물리적 결합에 의해 식별될 수 있다. (예를 들어, 마스터 및/또는 슬레이브 목적지, 드라이브 크기 등과 같은) IDE 드라이브 정보는 드라이브 및/또는 드라이브와 연결된 데이터 저장 장치를 식별하기 위해 이용될 수 있다. Attention is now directed to options for using optional "characteristics" within embodiments of the architecture, system and method of the present invention. References to the properties are made in other parts of the specification and preferably optional features are used. In one embodiment, at least one characteristic, attribute, descriptor or characteristic may be used to indicate each source and destination (as well as to represent characteristics of other components of the system). Such a characteristic may indicate a physical identifier and / or a logical identifier. As described above, in accordance with an exemplary IDE disk drive storage device, each IDE cable may be identified by physical coupling with a physical switch. IDE drive information (such as, for example, master and / or slave destinations, drive sizes, etc.) may be used to identify the drive and / or data storage devices associated with the drive.

유사하게, 적어도 하나의 특성(trait)은 가령 계산 환경, 즉 CE와 같은 각각의 목적지를 나타내기 위해 사용된다. 계산 환경이 개별적인 물리적 계산 환경을 대표한다면, 계산 환경은 가령 일반적인 스위치와 결합된 유일한 인터페이스와 같은 개별적인 물리적 계산 특징에 의해 구별될 수 있다. 본 발명의 일 실시예에 따라, 계산 환경은 다른 계산 환경과 일치하는 일부 또는 모든 물리적 계산 특성을 공유하는 논리적 계산 환경으로 표현될 수 있다. 논리적 계산 환경은 다양한 방법으로, 예를 들면 유일한 처리 식별자를 통해서 식별될 수 있다.Similarly, at least one trait is used to represent each destination, such as a computing environment, ie CE. If the computing environment represents a separate physical computing environment, the computing environment may be distinguished by individual physical computing features, such as a unique interface combined with a general switch. In accordance with one embodiment of the present invention, a computing environment may be represented as a logical computing environment that shares some or all of the physical computing characteristics consistent with other computing environments. The logical computing environment can be identified in various ways, for example, via a unique process identifier.

하나 이상의 특성은 가령 컴퓨터 모니터 및/또는 컴퓨터 그래픽 카드와 같은 출력 장치와 대응한다. 일 실시예에 따르면, 일 특성은 컴퓨터 모니터의 잠재적 관찰 영역과 연관된 디스플레이 영역과 대응한다. 소스로부터의 디스플레이 출력은 디스플레이 영역 특성에 따라 위치되어, 하나의 계산 환경으로부터의 출력은 영역 특성과 연관된 영역 내에 디스플레이용으로 보내진다. 영역 특성은 컴퓨터 모니터의 잠재적 관찰 영역과 연관된 사각 디스플레이 영역을 정의하는 한 쌍의 x, y 축을 포함한다. 따라서, 특정 계산 환경으로부터의 디스플레이 출력은 다른 영역이 아닌 대응하는 영역내의 하나 이상의 특성에 따라 대표된다.One or more characteristics correspond to output devices such as, for example, computer monitors and / or computer graphics cards. According to one embodiment, one characteristic corresponds to a display area associated with a potential viewing area of the computer monitor. The display output from the source is located in accordance with the display area characteristic so that output from one computing environment is sent for display within the area associated with the area characteristic. The area characteristic includes a pair of x and y axes that define a rectangular display area associated with the potential viewing area of the computer monitor. Thus, the display output from a particular computing environment is represented according to one or more characteristics in the corresponding area rather than in another area.

하나 이상의 특성은 입력 장치와 대응한다. 전술한 것처럼, 잠재적 관찰 영역과 연관된 영역 특성은 언제 입력이 특정 계산 환경과 통신하는지를 식별하기 위하여 더 연장된다. 마우스 이동 및 마우스 명령은 또한 사각 디스플레이 영역과 상관되어, 사각 디스플레이 영역과 대응하는 입력이 대응하는 계산 환경에 보내진다. 결과적으로, 영역 내의 마우스 이동은 동일 영역과 일치하는 계산 환경과 통 신된다. 특성의 사용은 일반적으로, 필요로 될 때 또는 간헐적으로 그 시스템과 함께 사용되거나, 이와 연관되거나, 또는 이와 사용을 위해 잠재적으로 이용가능한 임의의 장치, 서브시스템, 또는 주변기기로 연장될 수 있고, 본 시스템이 그와 통신하도록 배치될 수 있는 외부 장치 또는 시스템을 포함할 수 있다.One or more characteristics correspond to the input device. As mentioned above, the area characteristic associated with the potential viewing area is further extended to identify when the input is in communication with a particular computing environment. Mouse movements and mouse commands are also correlated with the rectangular display area such that input corresponding to the rectangular display area is sent to the corresponding computing environment. As a result, mouse movement within a region communicates with a computational environment that matches the same region. The use of the feature may generally extend to any device, subsystem, or peripheral that is used, associated with, or potentially available for use with, the system as needed or intermittently, The system can include an external device or system that can be arranged to communicate with it.

계산 환경 특성은 하나 이상의 출력을 그 계산 환경으로부터 발생한 것으로 식별하도록 사용될 수 있다. 계산 환경 특성은 하나 이상의 입력과 입력의 지정된 수신처인 대응하는 계산 환경을 식별하도록 사용될 수도 있다. 하나 이상의 계산 환경 특성은 계산 환경을 식별하도록 사용될 수 있다. 계산 환경 특성은 계산 환경을 유일하게 식별하도록사용될 수 있다. 특성은 대응하는 물리적 속성, 논리적 속성, 또는 속성들의 조합을 통해 계산 환경을 식별할 수 있다. 예를 들어, 특성은 하나 이상의 계산 시스템 요소의 물리적 어드레스를 식별할 수 있다. 대안으로, 특성은 논리적 계산 환경에 대응하는 논리적 어드레스를 식별할 수 있다. 또한, 특성은 주어진 계산 환경의 많은 특징을 식별할 수 있고, 대응하는 특성들의 수 및 형태는 본 발명에 따라 변할 수 있음이 이해되어야 한다.The computing environment property can be used to identify one or more outputs as originating from the computing environment. The computing environment property may be used to identify one or more inputs and corresponding computing environments that are designated destinations of the inputs. One or more computing environment properties may be used to identify the computing environment. The computing environment characteristic can be used to uniquely identify the computing environment. The characteristic can identify the computing environment through the corresponding physical attribute, logical attribute, or combination of attributes. For example, the characteristic can identify the physical address of one or more computing system elements. Alternatively, the property can identify a logical address corresponding to the logical computing environment. It is also to be understood that the characteristics can identify many of the characteristics of a given computing environment, and that the number and shape of the corresponding characteristics can vary in accordance with the present invention.

특성은 가령 처리 태스크의 하나 또는 집합을 수행하도록 본 시스템의 요소를 조직화하고 구성하는 데 도움을 주기 위하여 사용될 수 있다. 이렇게 구성하는 것은 저장 장치, 입출력 장치, 및/또는 다른 주변기기와의 원하는 연계를 제공하기 위하여 다양한 스위치, 스위칭 시스템, 및 스위칭 수단을 구성하는 것을 포함한다.Features can be used to help organize and organize the elements of the system, for example, to perform one or a set of processing tasks. This configuration includes configuring various switches, switching systems, and switching means to provide the desired association with storage, input / output devices, and / or other peripherals.

스위치를 구성하기 및 제어환경 내의 사용자 처리를 최소화하기Configure the switch and minimize user handling in the control environment

스위치 시스템을 구성할 수 있는 계산 환경의 일 형태는 제어 계산 환경이다(본 발명의 다른 실시예는 다른 계산 환경을 조합하는 것을 제공하며, 따라서 이에 대한 다른 변형이 본원의 다른 곳에서 기재된 대로 가능하다). 제어 계산 환경은 데이터 저장 스위치 구성 및 입출력 스위치 구성과 같은 스위치 시스템 구성을 재구성할 수 있다. 대응하는 스위치 시스템의 구성은 다양한 방법, 가령 지지 스위치 구성에 대한 임의의 변경이 이루어지거나/지고 결정될 때 스위치를 통해 통신을 구성하거나 재구성하는 것과 같은 다양한 방법으로 활성화될 수 있다. 또한, 제어 계산 환경과 스위치 시스템 및/또는 스위치 시스템 구조 사이의 통신은 코딩되어 제어 계산 환경만이 스위치 시스템을 구성할 수 있음을 보장하는 것을 돕는다.One form of computing environment that may constitute a switch system is a controlled computing environment (other embodiments of the present invention provide for combining different computing environments, and thus other variations thereof are possible as described elsewhere herein). ). The control computing environment can reconfigure switch system configurations such as data storage switch configurations and input / output switch configurations. The configuration of the corresponding switch system can be activated in a variety of ways, such as configuring or reconfiguring communications through the switch when any change to the support switch configuration is made and / or determined. In addition, the communication between the control computing environment and the switch system and / or switch system architecture is coded to help ensure that only the control computing environment can configure the switch system.

일 실시예에서, 사용자 데이터 또는 제어 계산 환경 내의 미지의 또는 신뢰되지 않는 데이터의 처리는 디스에이블(disable)되거나 허용되지 않아서, 가령 보호된 데이터 또는 마스터 템플릿(master template)이 저장되는 보호된 데이터 저장 장치에 대응하여, 데이터 또는 다른 정보의 손상(corruption)(가령, 그 제어 계산 환경내에 존재하거나 거주하는 사용자 데이터 파일 또는 컴퓨터 프로그램 코드의 손상)에 대한 잠재성을 제거한다. 본 발명의 일 실시예에 따라, 만약 사용자에 의해 전형적으로 수행될 수 있는 행동과 같은 사용자 동작(가령, 이메일, 워드 처리 등)을 사용자가 시작한다면, 사용자 동작은 별도의 계산 환경에서 처리될 수 있다. 사용자 인터페이스, 제어 동작, 및/또는 보호된 저장을 하나의 계산 환경 또는 서브시스템과 결합하는 본 발명의 실시예들에서, 이 환경의 구성은, 사용자 데이터가 그 제어 환경을 실행하여 제어 환경 또는 시스템을 손상시킬 수 있도록 하는 방식 으로 그러한 환경이 사용자 데이터의 처리를 지원하지 않는다. 복사 동작과 같은 처리 동작은 지원될 수 있으나 그러한 복사 동작은 악의적인 코드에 의한 다른 시스템 파일의 실행 또는 감염을 허용하지 않는 방식으로 실행될 것이다.In one embodiment, the processing of unknown or untrusted data in the user data or control computing environment is disabled or not allowed, such as protected data storage where protected data or master templates are stored. Corresponding to the device, it eliminates the potential for corruption of data or other information (e.g., damage to user data files or computer program code residing or residing within its control computing environment). According to one embodiment of the present invention, if a user initiates a user action (e.g., email, word processing, etc.) such as an action that may typically be performed by the user, the user action may be processed in a separate computing environment. have. In embodiments of the invention that combine a user interface, a control operation, and / or protected storage with a single computing environment or subsystem, the configuration of this environment is such that the user data executes the control environment so that the control environment or system Such an environment does not support the processing of user data in such a way that it could compromise its performance. Processing operations such as copy operations may be supported but such copy operations will be executed in a manner that does not allow execution or infection of other system files by malicious code.

제어 계산 환경은 사용자 동작을 개시하기 위하여 사용자 입력을 수신할 수 있다. 컴퓨터 마우스 입력은 입출력 스위치 시스템에 의해 수신되고 입출력 스위치 시스템 구성에 따라 제어 계산 환경으로 보내진다. 다른 주변장치로부터의 다른 입력도 입출력 스위치 시스템을 통해 제어 계산 환경에 의해 수신될 수 있다.The control computing environment may receive user input to initiate user action. Computer mouse input is received by the input / output switch system and sent to the control computing environment according to the input / output switch system configuration. Other inputs from other peripherals may also be received by the control computing environment through the input / output switch system.

사용자 계산 환경내에서 사용자 동작을 개시하고 실행하기Initiate and execute user actions within the user computing environment

제어 계산 환경의 사용자는 사용자 동작을 개시할 수 있다. 일 실시예에서, 사용자는 모니터의 영역내에 디스플레이된 특정 아이콘을 더블클릭할 수 있다. 마우스 행동은 제어 계산 환경에 의해 수신되고 개별 계산 환경의 1612에 있는 개시로 귀결되어 가령 워드 처리과 같은 1631에서의 사용자 처리를 실행한다. 제어 계산 환경은 개별 처리 환경의 생성을 시작하여 존재하고/하거나 새로운 문서와 일치하는 워드 처리를 실행할 수 있다. 만약 이것이 존재하는 문서라면, 제어 계산 세션(session)은 사용자 계산 환경에 의한 이후의 사용을 위해 제3 데이터 저장 장치에 문서의 사본을 복사할 필요가 있다. 입출력 스위치 시스템은 주변기기들을 사용자 계산 환경과 결합하도록 구성될 수 있는데, 가령 디스플레이의 영역이 사용자 계산 환경과 결합될 수 있다. 사용자 계산 환경은 하나 이상의 스위치 구성에 대한 변경에 의해 발생된 신호 또는 이벤트에 의해 개시될 수도 있다. 다양한 대안 적인 접근법이 사용자 계산 환경을 개시하기 위해 사용될 수도 있다.The user of the control computing environment can initiate the user action. In one embodiment, the user can double-click a particular icon displayed in the area of the monitor. Mouse actions are received by the control computing environment and result in initiation at 1612 of the individual computing environment to perform user processing at 1631, such as word processing. The control computing environment may initiate the creation of a separate processing environment to execute word processing consistent with existing and / or new documents. If this is an existing document, the control computation session needs to copy a copy of the document to a third data storage device for later use by the user computing environment. The input / output switch system may be configured to combine peripherals with a user computing environment, such as areas of the display may be combined with a user computing environment. The user computing environment may be initiated by signals or events generated by changes to one or more switch configurations. Various alternative approaches may be used to initiate the user computing environment.

사용자 계산 환경의 1606에서의 시작의 일부로써, 편집된 파일은 사용자 계산 환경이 부팅된 이후에 론칭(launch)되어도 좋다. 다른 실시예에 따라서, 존재하는 사용자 계산 환경은 대응하는 데이터 저장 장치와 결합되어 파일을 사용자 계산 환경내에서의 처리를 위해 이용가능하게 만든다. 본 발명의 일 실시예에 따르면, 편집될 파일(들)은 미리정의된 위치에 거주하여, 대응하는 애플리케이션이 대응하는 파일들을 열거나/열고 사용자 동작을 지원하도록 론칭될 수 있다. 제어 처리는 계산 환경을 제어하는 것에 의해 실행될수 있고, 하나 이상의 스위치 구조를 구성하는 것, 하나 이상의 스위치 시스템의 재구성을 개시하는 것, 하나의 데이터 저장 장치와 다른 데이터 저장 장치 사이에 정보를 복사하는 것, 보호된 데이터 저장 장치와 다른 데이터 저장 장치 사이에 정보를 복사하는 것을 포함한다. As part of the beginning at 1606 of the user computing environment, the edited file may be launched after the user computing environment is booted. According to another embodiment, the existing user computing environment is combined with the corresponding data storage device to make the file available for processing within the user computing environment. According to one embodiment of the present invention, the file (s) to be edited may reside in a predefined location, such that the corresponding application is launched to open the corresponding files and / or support user actions. Control processing can be performed by controlling the computing environment, configuring one or more switch structures, initiating reconfiguration of one or more switch systems, and copying information between one data storage device and another data storage device. Copying information between the protected data storage device and another data storage device.

사용자 처리는 제어하고 있는 컴퓨터 환경과 사용자 컴퓨터 환경 사이의 상호작용을 포함한다. 임의의 처리사용자에 의해 실행되는 기능과 일반적으로 연관된 임의의 처리는 독립 사용자 계산 환경에서의 처리를 위해 구성될 수 있다. 따라서, 사용자 처리 활동은 제어중인 계산 환경의 처리 활동 및/또는 다른 사용자 계산 환경의 처리중인 활동과 직접 인터페이스하지 않는다. 정보는 특정한 사용자 처리 활동(가령, 워드 처리 활동)을 지원하기 위해 필요한 컴퓨터 정보가 편집될 사용자 파일로의 액세스를 필요로 하는지에 의존하여 하나의 데이터 저장 장치로부터 다른 데이터 저장 장치로의 컴퓨터 정보의 복사를 통해 사용자 계산 환경으로 접근가능해질 수 있다.User processing involves the interaction between the computer environment under control and the user computer environment. Any process Any process generally associated with a function executed by a user may be configured for processing in an independent user computing environment. Thus, the user processing activity does not directly interface with the processing activity of the controlling computing environment and / or the processing activity of the other user computing environment. The information depends on whether the computer information needed to support a particular user processing activity (e.g., word processing activity) requires access to the user file to be edited, so that the information of the computer information from one data storage device to the other data storage device may vary. Copying can be made accessible to the user computing environment.

일반적으로, 제어 컴퓨터 프로세스는 1615에서의 제어 설정 처리와 1628에서의 제어 저장 처리를 포함한다. 제어 설정은 워드 처리 행동과 같은 적어도 하나의 처리 행동을 수행하기 위해 사용될 사용자 계산 환경의 수립을 지원하도록 사용된다. 제어 세이브 처리는 보호된 데이터 저장 장치에 사용자 정보를 저장하는 것을 포함한다. 일단 사용자 처리 행동이 완료되면, 그 사용자 처리 행동과 관련된 정보는 사용자 계산 환경이 저장 기능을 보호된 데이터 저장 장치로 직접 실행하도록 허용하는 것 없이 1618에 있는 보호된 데이터 저장 장치에 저장된다. In general, the control computer process includes control setting processing at 1615 and control storage processing at 1628. Control settings are used to assist in establishing a user computing environment that will be used to perform at least one processing action, such as word processing action. Control save processing includes storing user information in a protected data storage device. Once the user processing action is completed, the information related to that user processing action is stored in the protected data storage device at 1618 without allowing the user computing environment to directly execute the storage function to the protected data storage device.

본 발명의 일 실시예에 따르면, 제어 계산 환경은 하나 이상의 파일을 임시 데이터 저장 장치로 복사한다. 제어 계산 환경은 1616에 있는 데이터 저장 스위치 구성을 업데이트하여, 임시 데이터 저장 장치로의 사용자 계산 환경 액세스를 허용한다. 일 실시예에 따르면, 제어 계산 환경은, 사용자 계산 환경이 임시 데이터 저장 장치와 통신가능하게 결합되었음을 검증할 수 있다. 이후, 제어 계산 환경은 1614에서의 하나 이상의 사용자 계산 환경에 대응하는 처리가 완료되기를 기다린다. 사용자 계산 환경이 완료하기를 기다리는 동안, 제어 컴퓨터 환경은 일반적인 데스크탑 기능성과 일치하는 기능을 수행한다. 데스크탑 기능성은 가령 컴퓨터 바이러스의 하나 이상의 데이터 저장 장치를 제거하기 위한, 데이터 저장 장치의 관리, 데이터 저장 장치를 구성하는 것, 및 데이터 저장 장치들 사이에 계산 정보의 복사에 대응한다. 일반적으로, 데스크탑 기능성에 대응하는 기능성은 보호된 데이터 저장 장치에 저장되어 있는 계산 정보를 손상시킬 가능성을 감소시키는 것에 제한된다. According to one embodiment of the invention, the control computing environment copies one or more files to a temporary data storage device. The control computing environment updates the data storage switch configuration at 1616 to allow user computing environment access to the temporary data storage device. According to one embodiment, the control computing environment may verify that the user computing environment is communicatively coupled with the temporary data storage device. The control computing environment then waits for processing corresponding to one or more user computing environments at 1614 to complete. While waiting for the user computing environment to complete, the controlling computer environment performs functions consistent with normal desktop functionality. Desktop functionality corresponds to managing data storage, configuring data storage, and copying computational information between data storage devices, for example, to remove one or more data storage devices of a computer virus. In general, functionality corresponding to desktop functionality is limited to reducing the possibility of compromising computational information stored on protected data storage devices.

사용자 처리의 완료Completion of User Processing

사용자 처리 동작의 완료시에, 제어 컴퓨터 환경은 여러 상이한 고지 접근에 따라 고지될 수 있다. 한 가지 그러한 접근법에 따르면, 사용자 계산 환경은 종결되어 그 종결이 대응하는 스위치 시스템에 의해 감지된다. 스위치 시스템은, 데이터가 보호된 데이터 저장 장치에 배치되어야 하는 사용자 정보를 포함함을 제어 계산 환경에 고지한다.Upon completion of the user processing operation, the control computer environment may be announced in accordance with several different notification approaches. According to one such approach, the user computing environment is terminated so that termination is sensed by the corresponding switch system. The switch system informs the control computing environment that the data includes user information that must be placed in a protected data storage device.

사용자 동작의 완료에 응답하여 제어 계산 환경은 사용자 데이터 저장 장치를 제어 계산 환경과 결합하여, 사용자 정보 및/또는 파일들은 사용자 계산 환경에 의해 실행되었을 수 있는 임의의 프로세스와는 독립적으로 보호된 데이터 저장 장치에 복사될 수 있다. 따라서, 보호된 데이터 저장 장치에 저장된 다른 파일들은 독립적인 사용자 계산 환경의 동작에 의해 손상되지 않을 것이다.In response to the completion of the user action, the control calculation environment combines the user data storage device with the control calculation environment so that the user information and / or files are protected data independent of any process that may have been executed by the user calculation environment. Can be copied to the device. Thus, other files stored on the protected data storage device will not be corrupted by the operation of an independent user computing environment.

본 발명의 일 실시예에 따르면, 파일 저장 명령은 제어 계산 환경이 사용자 계산 환경의 상황 내에서 실행되는 다른 동작들과 독립적으로 보호된 데이터 저장 장치로 사용자 파일을 저장하게 하는 개시 이벤트(triggering event)로써 사용될 수 있다. 본 발명의 일 실시예에 따르면, 임시 데이터 저장 장치는 사용자 계산 환경과 제어 계산 환경 모두와 결합되어서, 사용자 계산 환경 제어 계산 환경과 결합된 다른 파일들을 손상시킬 수 없다. 사용자 계산 환경은 파일을 임시 데이터 저장 장치에 저장할 수 있고, 여기서 제어 계산 환경은 파일을 보호된 데이터 저장 장치 및/또는 중간 데이터 저장 장치에 복사하는 능력을 포함한다. 이후에 중간 데이터 저장 장치는, 가령 사용자 애플리케이션이 닫힐 때, 보호된 데이터 저장 장치에 대응하는 파일을 저장하기 위하여 사용된다. 사용자 계산 환경 사이의 통신은 사용자 계산 환경이 보호된 데이터 저장 장치에 저장되어 있는 파일들을 손상할 수 없음을 보장하는 것을 돕도록 수동적으로 실행된다.According to one embodiment of the invention, the file save command is a triggering event that causes the control computing environment to save the user file to the protected data storage device independently of other operations executed within the context of the user computing environment. Can be used as According to one embodiment of the invention, the temporary data storage device is combined with both the user computing environment and the control computing environment, so that other files combined with the user computing environment control computing environment cannot be damaged. The user computing environment may store the file in a temporary data storage device, where the control computing environment includes the ability to copy the file to a protected data storage device and / or an intermediate data storage device. The intermediate data storage device is then used to store a file corresponding to the protected data storage device, eg when the user application is closed. The communication between the user computing environment is performed manually to help ensure that the user computing environment cannot damage the files stored on the protected data storage device.

사용자 파일은, 파일 저장 명령의 결과로써 임시 데이터저장 장치에 저장된다. 저장 명령의 개시에 이어, 데이터 저장 스위치 시스템은 데이터 저장 장치가 저장된 파일과 결합됨을 검증한다. 상기 파일이 존재했다면, 일련의 명령들이 실행되어 임시 데이터 저장 장치로부터 보호된 데이터 저장 장치로 파일을 복사한다.The user file is stored in the temporary data storage device as a result of the file storage command. Following initiation of the save command, the data storage switch system verifies that the data storage device is associated with the stored file. If the file exists, a series of instructions are executed to copy the file from the temporary data storage device to the protected data storage device.

본 발명의 일 실시예에 따르면, 제어 계산 환경은 대응하는 사용자 계산 환경이 사용자 동작(예를 들어, 파일을 저장하는 것)을 완료하기를 기다린다. 이후, 데이터 저장 스위치가 사용자 컴퓨터 환경으로부터 임시 데이터 저장 장치를 결합 해제하도록 구성된다. 임시 데이터 저장 장치는 그 후 제어 계산 환경과 결합된다. 보호된 데이터는 또한 제어 계산 환경과 결합된다. 파일은 사용자 계산 환경과 독립적으로 임시 데이터 저장 장치로부터 보호된 데이터 저장 장치로 복사된다. 임시 데이터 저장 장치는 그후 제어 계산 환경으로부터 결합이 해제되고, 사용자 계산 환경과 재결합된다.According to one embodiment of the invention, the control computing environment waits for the corresponding user computing environment to complete the user action (e.g., saving a file). The data storage switch is then configured to disassociate the temporary data storage device from the user computer environment. The temporary data storage device is then combined with the control computing environment. The protected data is also combined with the control calculation environment. The file is copied from the temporary data storage device to the protected data storage device independently of the user computing environment. The temporary data storage device is then decoupled from the control computing environment and recombined with the user computing environment.

본 발명의 대안적인 실시예에 따르면, 저장 프로세스는 제어 계산 환경과 통신된 스위칭 시스템에 대응하는 플래그를 트립(trip) 및/또는 설정한다. 하나 이상의 파일들의 존재가 검증된다. 만약 파일들의 검증이 파일들의 존재를 지시하면, 일련의 컴퓨터 명령들이 하나 이상의 파일들을 임시 데이터 저장 장치로부터 보호된 데이터 저장 장치로 복사하도록 실행된다.According to an alternative embodiment of the invention, the storage process trips and / or sets a flag corresponding to the switching system in communication with the control computing environment. The presence of one or more files is verified. If the verification of the files indicates the existence of the files, a series of computer instructions are executed to copy one or more files from the temporary data storage device to the protected data storage device.

본 발명의 대안적인 실시예에 따르면, 키보드 명령(가령, 콘트롤-S)은 파일을 저장하기 위해 사용된다. 입출력 스위치 시스템은 사용자 계산 환경과 제어 계산 환경 모두와 명령 시퀀스를 통신하도록 구성된다. 결과적으로, 제어 계산 환경은 사용자 계산 환경에 저장된 파일을 보호된 데이터 저장 장치에 복사하는 것을 지원하기 위하여 데이터 저장 스위치 및/또는 입출력 스위치 시스템을 재구성한다.According to an alternative embodiment of the invention, keyboard commands (eg, Control-S) are used to store the file. The input / output switch system is configured to communicate a command sequence with both the user computing environment and the control computing environment. As a result, the control computing environment reconfigures the data storage switch and / or input / output switch system to support copying files stored in the user computing environment to the protected data storage device.

본 발명의 대안적인 실시예에 따르면, 사용자 계산 환경이 닫히고/닫히거나 차단(shutdown)될 때, 파일이 보호된 데이터 저장 장치로 전송될 수 있다. 하나 이상의 스위치 시스템은 닫힘 및/또는 차단을 감지할 수 있다. 본 발명의 대안적인 실시예에 따르면, 닫힌 사용자 계산 환경은 사용자 계산 환경에 의해 공급되었을 지 모르는 데이터 저장 장치에 대응하는 변경된 전력 상태에 의한 데이터 저장 스위치 시스템에 의해 검증된다.According to an alternative embodiment of the present invention, when the user computing environment is closed and / or shut down, the file may be transferred to the protected data storage device. One or more switch systems may detect closure and / or shutdown. According to an alternative embodiment of the invention, the closed user computing environment is verified by a data storage switch system with a changed power state corresponding to the data storage device that may have been supplied by the user computing environment.

본 발명의 대안적인 실시예에 따르면, 컴퓨터 디스플레이 모니터와 일치하는 그래픽 영역은 특정 계산 환경과 일치하는 사용자 입력이 수신되었을 때를 식별하기 위해 사용된다. 사용자 입력은 특정 실행에 의존하여 입출력 스위치 시스템 내에서 및/또는 제어 계산 환경 내에서 분석된다. 일 실시예에 따르면, 사용자 계산 환경과 일치하는 저장 명령 및/또는 닫기 명령이 사용되어, 사용자 정보가 보호된 데이터 저장 장치에 저장될 필요가 있음을 식별하고/식별하거나 컴퓨터 정보의 보호된 데이터 저장 장치로의 저장을 개시한다.According to an alternative embodiment of the present invention, a graphic area coinciding with the computer display monitor is used to identify when user input matching a particular computing environment has been received. User input is analyzed within the input / output switch system and / or within the control calculation environment depending on the particular implementation. According to one embodiment, a save command and / or a close command that matches the user computing environment is used to identify and / or identify the user information needs to be stored on a protected data storage device and / or to store protected data of computer information. Start storage on the device.

사용자 계산 환경을 닫는 것은 전원 스위치를 끄는 것을 포함한다. 스위칭 시스템은 전력소비의 변화 및/또는 중단을 감지할 수 있다. 만약 사용자가 애플리케이션과 대응하는 사용자 계산 환경을 닫는다면, 제어 계산 환경은 전이를 감지하고 임의의 해당하는 사용자 데이터를 보호된 데이터 저장 장치로 저장한다. 데이터 저장 장치를 재구성하기 전에, 대응하는 스위치 시스템이 사용자 데이터를 포함하는 데이터 저장 장치로의 전원이 디스에이블 되고/되거나 오프 상태임을 확인한다. 제어 계산 환경은 그 후 사용자 제어 환경으로부터 사용자 정보를 포함하는 데이터 저장 장치를 결합 해제하고, 전술한 것처럼 사용자 정보를 보호된 데이터 저장 장치로 복사한다.Closing the user computing environment includes turning off the power switch. The switching system can detect changes and / or interruptions in power consumption. If the user closes the application and the corresponding user computing environment, the control computing environment detects the transition and stores any corresponding user data on the protected data storage device. Prior to reconfiguring the data storage device, the corresponding switch system confirms that power to the data storage device containing the user data is disabled and / or off. The control computing environment then disassociates the data storage device containing the user information from the user control environment and copies the user information to the protected data storage device as described above.

본 발명의 일 실시예에 따르면, 데이터 저장 장치는 사용자 계산 환경과 결합된 후 소거된다(cleaned). 제어 계산 환경은 사용자 계산 환경이 데이터 소스를 사용한 후에 재포맷 되고/되거나 하나 이상의 데이터 저장 장치를 비운다. 마스터 템플릿 데이터 저장 장치는 데이터 소스를 사용자 계산 환경과 결합하기 이전에 데이터 저장 장치를 개시하기 위하여 사용될 수도 있다. 다른 실시예에 따르면, 제어 계산 환경은 하나 이상의 데이터 저장 장치를 재포맷하는 것 및/또는 소거하는 것을 지원하도록 형성된 다른 사용자 계산 프로세스를 개시한다. According to one embodiment of the invention, the data storage device is cleaned after being combined with the user computing environment. The control computing environment is reformatted after the user computing environment uses the data source and / or frees one or more data storage devices. The master template data storage device may be used to initiate the data storage device prior to combining the data source with the user computing environment. According to another embodiment, the control computing environment initiates another user computing process configured to support reformatting and / or erasing one or more data storage devices.

도2 및 도3의 실시예에 관하여 건축학적 토폴로지 및 시스템 구조 뿐만 아니라, 도4, 도5, 및 도6의 방법 및 절차에 관하여 개시(initialization) 및 동작적 측면이 기재되어 왔지만, 이제는 그러한 계산 장치, 정보 응용, 및 처리 기계의 부가적인 건축학적, 구조적 및 방법적인 측면을 주목한다.Initialization and operational aspects have been described with respect to the embodiments of FIGS. 2 and 3, as well as the architectural topology and system architecture, as well as the methods and procedures of FIGS. 4, 5, and 6, but now such calculations Note the additional architectural, structural, and methodological aspects of the apparatus, information applications, and processing machines.

도7은 특정 용도 서브시스템 또는 계산 환경(1120)(가령 1120-1 및 1120-2) 과, 디스플레이(1140), 키보드(1150), 및 마우스(1160)를 포함하는 많은 주변기기(1108)와 결합된 컴퓨터 시스템(1110)내의 공통 제어기(1130)를 포함하는 본 발명의 실시예를 도시하고 있다.FIG. 7 is coupled with a number of peripherals 1108 including a particular use subsystem or computing environment 1120 (eg, 1120-1 and 1120-2), and a display 1140, a keyboard 1150, and a mouse 1160. An embodiment of the invention is shown that includes a common controller 1130 in a computer system 1110.

비록 2개의 특정 용도 서브시스템만이 도면에 도시되지만, 시스템이 하나의 서브시스템 또는 계산 환경 또는 임의의 복수의 그러한 서브시스템을 포함해도 좋고, 다수의 그러나 다수의 능동적인 사용을 포함하지만 하나의 특정 용도 서브시스템만을 사용해도 좋고, 또는 상이한 구조적 및/또는 동작 특성을 갖는 다수의 특정 용도 서브시스템을 포함해도 좋음이 이해될 것이다. 예를 들어, 다수는 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 32, 50, 64, 100, 또는 그 이상의 특정 용도 처리 시스템이거나, 또는 선행 기술로 공지된 것처럼 물리적 공간, 회로 밀도, 열 발생, 및 다른 팩키징 및 접속 디자인 문제에 따라서 임의의 중간 숫자이어도 좋다.Although only two specific use subsystems are shown in the figures, the system may include one subsystem or computational environment or any plurality of such subsystems, including many but multiple active uses, but one specific It will be appreciated that only the use subsystem may be used or may include a number of specific use subsystems with different structural and / or operating characteristics. For example, many are 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, It may be 24, 32, 50, 64, 100, or more specific use processing systems, or any intermediate number depending on physical space, circuit density, heat generation, and other packaging and connection design issues as known in the art. .

또한, 적어도 하나의 실시예에서, 본 구조 및 방법은 단일의, 즉 하나의 서브시스템 또는 계산 환경만을 갖는 하드웨어로 구현되어도 좋고, 상기 계산 환경 또는 서브시스템은 상이한 프로세스에 대하여 순차적으로 사용된다. 이 단일 계산 환경 시스템의 일 실시예에서, 개별 로직이 계산 환경 상태의 저장 및 복원을 실행하기 위해 사용되어, 계산 환경은 의도된 처리 동작을 실행하고 초기상태나, 제2 또는 제어 프로세스의 임의의 중간 상태 중 어느 하나를 복원하는 능력을 유지하도록 사용된다.In addition, in at least one embodiment, the present structures and methods may be implemented in hardware having a single, i.e., only one subsystem or computing environment, wherein the computing environment or subsystems are used sequentially for different processes. In one embodiment of this single computing environment system, separate logic is used to perform the storage and retrieval of the computing environment state so that the computing environment executes the intended processing operation and any of the initial state or any of the second or control processes. It is used to maintain the ability to restore any of the intermediate states.

구조적 특징 및/또는 처리 특징은, 상이한 처리 용량(가령 초당 상이한 수의 동작, 프로세서 관련 메모리의 상이한 양, 상이한 프로세서 아키텍쳐 또는 명령 집합, 또는 상이한 동작 시스템) 또는 물리적 또는 논리적 할당의 형태인 상이한 양의 대량 저장장치 또는 하드 디스크 드라이브, 광 저장 매체, 또는 고체 상태(solid state) 기억장치를 갖는 특정 용도 서브시스템을 포함하나, 이에 제한되지는 않는다.Structural and / or processing features may include different amounts of processing capacity (eg, different numbers of operations per second, different amounts of processor-related memory, different processor architectures or instruction sets, or different operating systems) or different amounts of physical or logical allocation. Specific use subsystems having, but not limited to, mass storage or hard disk drives, optical storage media, or solid state storage.

제어기(1175) 및 이와 연관되고 결합된 메모리 기억장치(1176)는 다수의 특정 용도 서브시스템 중 선택된 것들 또는 모두와 양방향으로 결합(가령, 특정 용도 서브시스템(1120-1 및 1120-2)과 결합)된다. 특정 용도 서브시스템으로의 또는 특정 용도 서브시스템으로부터의 양방향 결합 중 어느 한 방향은 간헐적 이고/이거나 인에이블 및 디스에이블로 절환가능하다. 또한, 제어기(1175)와 메모리 기억장치(1176) 사이의 접속은 인에이블 및 디스에이블로 절환가능하다.The controller 1175 and associated memory storage 1176 associated therewith are coupled in both directions with selected or all of a plurality of special purpose subsystems (eg, with special purpose subsystems 1120-1 and 1120-2). )do. Either direction of bidirectional coupling to or from the particular use subsystem is intermittent and / or switchable to enable and disable. In addition, the connection between the controller 1175 and the memory storage 1176 is switchable to enable and disable.

도시된 것처럼, 선택적인 분리된 로직 제어 장치(1180)는 제1 및 제2 특정 용도 서브시스템(1120) 사이에 결합된다. 공통 제어기(1130)는 인터페이스(1170)를 경유하여 특정 용도 서브시스템(1120-1) 및 특정 용도 서브시스템(1120-2)과 결합된다. 본 발명의 실시예는 이들이 동일한 인터페이스 또는 별개의 인터페이스들이 되도록 제공한다. 선택적인 인터페이스(1170)는 특정 용도 서브시스템(1120-1 및 1120-2) 사이에 결합되며, 그러한 결합은 간헐적일 수 있거나, 인에이블 또는 필요하지 않거나 원하지 않을 때는 디스에이블될 수 있다. 이 실시예에서, 인터페이스는 양방향성인 것으로 도시되어 있으나, 어느 하나의 단방향 인터페이스가 개별적으로 사용되거나, 인에이블 되거나, 독립적으로 또는 일 집합으로써 디스에이 블되어도 좋다. 또한, 비록 단일의 라인이 명료성을 위해 도면에 도시되었지만, 인터페이스는 다수의 접속 또는 통신 경로(가령, 인터페이스 멀티-라인 버스 인터페이스; 이에 한정되지는 않음)로써 실행되어도 좋다. 디스플레이 또는 디스플레이 서브시스템(가령, 비디오 프로세서 카드 또는 칩셋, 드라이버, 및 디스플레이 스크린을 포함하는 종래의 디스플레이 서브시스템)이 공통 제어기(1130)로부터 전기 신호의 형태로 데이터를 수신하며, 공통 제어기(1130)는 차례로 그 입력을 하나 또는 모두의 특정 용도 서브시스템(1120-1 및/또는 1120-2)에서 실행하는 프로세스로부터 그리고 상기 프로세스의 결과로써 수신함이 이해될 것이다. 디스플레이 서브시스템(1140), 공통 제어기(1130), 및/또는 특정 용도 서브시스템(1120-1 및 1120-2)내의 산술 및 로직 회로와 같은 하드웨어, 소프트웨어, 및 펌웨어 또는 이들의 조합은 예를 들어 사용자의 계산 환경 데스크탑과, 현재 활성중 및 현재 비활성중인 윈도우를 반영하는 원하는 그래픽 디스플레이를 생성한다.As shown, an optional separate logic control device 1180 is coupled between the first and second specific use subsystem 1120. The common controller 1130 is coupled with the special purpose subsystem 1120-1 and the special purpose subsystem 1120-2 via the interface 1170. Embodiments of the invention provide that they are the same interface or separate interfaces. The optional interface 1170 is coupled between the specific use subsystems 1120-1 and 1120-2, and such coupling can be intermittent, enabled or disabled when not needed or desired. In this embodiment, the interface is shown to be bidirectional, but either unidirectional interface may be used individually, enabled, disabled independently or as a set. In addition, although a single line is shown in the figure for clarity, the interface may be implemented as multiple connection or communication paths (eg, interface multi-line bus interface; A display or display subsystem (eg, a conventional display subsystem including a video processor card or chipset, a driver, and a display screen) receives data from the common controller 1130 in the form of an electrical signal, and the common controller 1130. Will in turn receive its input from and as a result of the process executing in one or all of the specific use subsystems 1120-1 and / or 1120-2. Hardware, software, and firmware or combinations thereof, such as arithmetic and logic circuits within the display subsystem 1140, the common controller 1130, and / or the specific use subsystems 1120-1 and 1120-2 may be used, for example. Create the user's computing environment desktop and the desired graphical display that reflects the currently active and currently inactive windows.

키보드(1150) 및 마우스 입력(1160)은, 만약 일부 피드백이 전자적 신호 또는 음성, 기계적, 또는 촉각적 피드백으로 제공되지 않는다면, 또한 전형적으로 키보드 또는 마우스로부터 공통 제어기로의 단방향이다. 디스플레이 스크린, 키보드, 및 마우스 디바이스의 단방향 성질은 이들이 일반적으로 로컬 계산 환경 외부로부터의 악성 컴퓨터 공격으로부터 면역성이 있음을 의미한다.Keyboard 1150 and mouse input 1160 are also typically unidirectional from the keyboard or mouse to a common controller if some feedback is not provided by electronic signals or voice, mechanical, or tactile feedback. The unidirectional nature of display screens, keyboards, and mouse devices means that they are generally immune from malicious computer attacks from outside the local computing environment.

도8은 도7에 도시된 실시예와 유사하고 도7에 대해 상대적으로 기재되는 본 발명의 대안적인 실시예를 도시하고 있다. 이 대안적인 실시예는 특정 용도 서브시스템(1120)과, 디스플레이(1140), 키보드(1150), 및 마우스(1160)를 포함하는 많 은 주변기기(1108)와 결합된 컴퓨터 시스템(1110)내에 공통 제어기(1130)를 포함한다. 도시된 것처럼, 제어기 시스템이 제1 및 제2의 특정 용도 서브시스템(1120-1 및 1120-2) 사이에 결합되거나, 도7의 실시예에서처럼, 임의 복수의 이러한 특정 용도 서브시스템들 사이에 결합되어도 좋다. 이 실시예에서, 제어기(1175) 및 이와 연관되고 결합된 메모리 기억장치(1176)는 제어기 시스템(1177)으로써 동작되는 특정 용도 서브시스템들 중 하나(1120-3)를 이용하여 실행된다. 제어기 시스템(1177; 1120-3)은 다른 특정 용도 서브시스템(1120)의 하나, 하나 이상, 또는 모두에 그리고, 인터페이스(1170)를 경유하여 공통 제어기(1130)에 선택적으로 결합된다. 예시적인 특정 용도 서브시스템의 구조와, 이들이 애플리케이션 실행 및 처리 유닛을 동작하거나, 다양한 마스터 제어 및/또는 모니터링 기능을 취하도록(가령 제어기 시스템(1170)으로써 동작하도록) 구성되는 방법이 도면 중 다른 것에 대하여 본 명세서의 다른 부분에 기재된다.FIG. 8 shows an alternative embodiment of the invention similar to the embodiment shown in FIG. 7 and described with respect to FIG. 7. This alternative embodiment is a common controller within computer system 1110 coupled with a number of peripherals 1108 including a specific use subsystem 1120 and a display 1140, a keyboard 1150, and a mouse 1160. 1130. As shown, the controller system is coupled between the first and second specific use subsystems 1120-1 and 1120-2, or as in the embodiment of FIG. 7, between any plurality of such specific use subsystems. You may be. In this embodiment, controller 1175 and associated and associated memory storage 1176 are executed using one of the special purpose subsystems 1120-3 operating as controller system 1177. Controller system 1177 (1120-3) is selectively coupled to one, one or more, or all of other special purpose subsystems 1120 and to common controller 1130 via interface 1170. The structure of an exemplary specific use subsystem and how they are configured to operate an application execution and processing unit or to take on various master control and / or monitoring functions (such as to operate as controller system 1170) are described in other portions of the figures. As described in other parts of this specification.

이제 정보 응용, 컴퓨터, 또는 데이터 처리 장치용의 본 발명의 아키텍쳐, 시스템, 및 방법의 추가적인 실시예에 주목한다. 적어도 하나의 보호된 데이터 저장 장치를 포함하는 다수의 데이터 저장 장치; 적어도 하나의 소스를 다수의 목적지와 통신가능하게 결합(및 결합해제)하는 다수의 스위칭 시스템으로서, 상기 소스가 데이터 저장 소스인 데이터 저장 스위치 시스템과, 상기 소스가 주변장치 소스인 입출력 스위치 시스템을 포함하는 스위칭 시스템; 다른 계산 환경과는 독립적으로 처리 활동을 수행하며, 데이터 저장 스위치 시스템과 입출력 스위치 시스템 사이에 결합된 다수의 계산 환경(때로는 쉘(shell)이라고 함) - 여기서 목적지는 계산 환경이고, 스위칭 시스템은 상기 소스 및 상기 목적지와 통신가능하게 결합한다 -; 처리 활동에 따라 스위치 구성을 구성하는 다수의 계산 환경으로부터 선택되고 보호된 데이터 저장 장치와 통신가능하게 결합된 적어도 하나의 제어 계산 환경; 및 다수의 계산 환경으로부터 선택된 적어도 하나의 사용자 계산 환경 - 처리 활동은 보호된 데이터 저장 장치에서 수행되지 않음 -을 포함하는 본 발명의 정보 응용 또는 컴퓨터 시스템의 다른 실시예가 기재되었음을 상기해 본다. Attention is now directed to additional embodiments of the present architecture, systems, and methods for information applications, computers, or data processing devices. A plurality of data storage devices including at least one protected data storage device; A plurality of switching systems for communicatively combining (and uncombining) at least one source with a plurality of destinations, the plurality of switching systems comprising a data storage switch system wherein the source is a data storage source and an input / output switch system where the source is a peripheral device source. Switching system; Performs processing activities independently of other computing environments, and includes a number of computing environments (sometimes called shells) coupled between a data storage switch system and an input / output switch system, where the destination is a computing environment and the switching system is Communicatively couple with a source and the destination; At least one controlled computing environment communicatively coupled to a protected data storage device selected from a plurality of computing environments that configure the switch configuration in accordance with processing activity; And another embodiment of the information application or computer system of the present invention is described that includes at least one user computing environment selected from a plurality of computing environments, wherein processing activities are not performed on a protected data storage device.

이 정보 응용 및 계산 시스템의 일 실시예에서, 각각의 계산 환경들은 다수의 특성들로부터 선택된 적어도 하나의 특성에 의해 구별되도록 추가적으로 정의되며, 스위칭 시스템은 특성에 따라서 소스와 목적지를 통신가능하게 결합하며, 적어도 하나의 제어 계산 환경은 처리 활동 및 특성에 따라 스위치 구성을 구성하는 다수의 계산 환경으로부터 선택된다.In one embodiment of this information application and computing system, each computing environment is further defined to be distinguished by at least one characteristic selected from a plurality of characteristics, the switching system communicatively combining the source and the destination according to the characteristic and At least one control computing environment is selected from a number of computing environments that make up the switch configuration in accordance with processing activity and characteristics.

도9의 실시예는 본 발명을 이용하여 장치 및 시스템으로 통합되는 부가적인 측면 및 특징을 개시하는 부가적인 구현 및 구조적인 상세를 제공한다. 이 시스템 아키텍쳐와 구조 사이의 유사성은 도2 및 도3에 대해 이미 기재된 것으로부터 명백할 것이다. The embodiment of Figure 9 provides additional implementation and structural details that disclose additional aspects and features that are incorporated into the apparatus and system using the present invention. The similarity between this system architecture and the structure will be apparent from what has already been described with respect to FIGS. 2 and 3.

이 실시예에서, 비록 임의의 수(M)의 계산 환경이 정적으로 또는 동적으로 제공될 수 있지만, 다섯 개의 계산 환경(2108-1 내지 2108-5)이 구체적으로 도시된다. 적어도 이러한 계산 환경(2108-1 내지 2108-5)의 일부는 다소 상이한 요소 또는 내부 구조를 가지는 것처럼 보임이 이해될 것이다. 사실 본 발명의 일부 실시예에서, 계산 환경의 동작 및 구조는 상이(그리고 아마도 현저하게 상이할 수 있 음)할 수 있지만, 다른 실시예에서는 동일할 수 있고, 또다른 실시예에서는, 하드웨어가 동일하지만 상이한 동작 시스템 또는 애플리케이션 프로그램을 실행할 수 있고, 몇몇 다른 소프트웨어 구조 차이를 가질 수 있다. 이러한 계산 시스템의 일부에 있어서, 다수의 계산 환경의 구성은 하드웨어, 펌웨어, 소프트웨어, 또는 이들의 임의의 조합으로 동적으로 구성된다.In this embodiment, five calculation environments 2108-1 through 2108-5 are specifically shown, although any number M of calculation environments can be provided statically or dynamically. It will be appreciated that at least some of these computing environments 2108-1 through 2108-5 appear to have somewhat different elements or internal structures. Indeed, in some embodiments of the present invention, the operation and structure of the computing environment may be different (and possibly significantly different), but in other embodiments may be the same, in another embodiment, the hardware may be the same. However, they may execute different operating systems or application programs and may have some other software structure differences. In some of these computing systems, the configuration of multiple computing environments is dynamically constructed of hardware, firmware, software, or any combination thereof.

도9의 시스템(2100)에서, 두 개의 계산 환경(2108-4 및 2108-5)은 동일한 구조적 구성을 갖고(그러나 이들은 여전히 상이한 소프트웨어 및 데이터를 구비할 수 있다), 다른 세 개의 계산 환경(2108-1, 2108-2 및 2108-5)은 상이한 구조를 갖는다. 이러한 상이한 계산 환경의 구조 및 동작이 이제 기재될 것이며, 이후에 어떻게 이러한 상이한 구조 및 동작이 원하는 효과적인 구조 및 동작을 제공하도록 동적으로 맞춤화될 수 있는 공통의 구조적인 계산 환경 모듈을 이용하여 선택적으로 그러나 유리하게 구현될 수 있는 지를 도10에 대하여 도시할 것이다.In the system 2100 of FIG. 9, the two computing environments 2108-4 and 2108-5 have the same structural configuration (but they may still have different software and data) and the other three computing environments 2108. -1, 2108-2 and 2108-5) have different structures. The structure and operation of these different computing environments will now be described, optionally using a common structural computing environment module that can then be dynamically customized to provide such effective structures and operations as desired. It will be shown with respect to FIG. 10 that it may be advantageously implemented.

사용자 인터페이스 계산 환경User Interface Compute Environment

먼저 통상의 사용자 인터페이스가 아니지만 사용자 인터페이스 동작을 제공하며, 프로세서와 프로세서 결합된 메모리를 일반적으로 포함하는 중앙 처리 장치(CPU)(21)를 포함하는 사용자 인터페이스 계산 환경(UICE)(2108-1)에 주목한다. CPU는 또한 관련 기술분야에서 공지된 일반적으로 프로세서 칩셋이라 불리는 다른 칩 또는 회로를 포함할 수도 있다.First, a user interface computing environment (UICE) 2108-1 that includes a central processing unit (CPU) 21 that provides a user interface operation that is not a conventional user interface but typically includes a processor and processor coupled memory. Pay attention. The CPU may also include other chips or circuits commonly known in the art, called processor chipsets.

일 실시예에서, 사용자는 컴퓨터 시스템 및 계산 환경의 실제 동작과는 다소 명백하게 독립적인 파일 또는 데이터 집합을 조작할 수 있음에 주의하여야 한다. 예를 들어, 일 실시예에서, 사용자의 관점으로부터 그/그녀는 아이콘 또는 파일 이름 또는 다른 식별 번호를 한 위치(가령 데스크탑, 하드디스크 드라이브 아이콘, 또는 임의의 다른 위치)로부터 임의의 다른 위치로 단지 드래그한다. 실제로, 데스크탑 예에 대해서는, 제어 계산 환경 또는 사용자 인터페이스 환경은 데스크탑의 좌표에 대응하는 영역으로/으로부터 드래그된 (파일과 같은) 그 아이템을 계산하며 데스크탑 환경 또는 다른 목적지에 아이템의 아이콘을 생성하지만, 실제 파일은 보호된 저장 장치에 위치된다.In one embodiment, it should be noted that a user may manipulate a file or data set that is somewhat obviously independent of the actual operation of the computer system and computing environment. For example, in one embodiment, from the user's point of view, he / she may simply place an icon or file name or other identification number from one location (eg, desktop, hard disk drive icon, or any other location) to any other location. Drag Indeed, for the desktop example, the control computing environment or user interface environment calculates the item (such as a file) dragged to / from an area corresponding to the coordinates of the desktop and creates an icon for the item in the desktop environment or other destination, The actual file is located on a protected storage device.

도시된 실시예에서, 저장 장치(2121)는 두 개의 저장 부분을 갖는 것으로 도시되어 있는데, 이는 마스터 템플릿의 전부 또는 선택된 부분을 저장하는 제2 템플릿 부분(STP; 2122)(본 명세서의 마스터 템플릿의 기재를 참고), 및 사용자 데이터 파일을 저장하지만 본 환경에서 저장 장치를 제공할 필요가 대부분의 실시예에서 최소이기 때문에 제거될 수 있는 선택적 임시 데이터 저장 부분(TDP; 2123)이다. 이 계산 환경(2108-1)의 바람직한 실시예에서, 이 환경에서 어떠한 응용 프로그램이나 실제 파일이 존재하지 않고 단지 이러한 프로그램 또는 실제 파일들에 대한 레퍼런스, 링크, 또는 포인트가 존재한다(다른 계산 환경은 이들의 최소 처리 요건의 결과로써 최소 임시 저장 요건을 가질수도 있음에 주의하여야 한다). 계산 환경(2108-1)은 사용자 인터페이스 계산 환경(UICE)으로써 식별되며 인간 사용자 즉 동작자(2129)와 계산 시스템(2100) 사이에 인터페이스를 제공한다.In the illustrated embodiment, the storage device 2121 is shown as having two storage portions, which are second template portions (STP) 2122 (storage of master templates herein) that store all or selected portions of the master template. And an optional temporary data storage portion (TDP) 2123 that stores user data files but can be removed because the need to provide storage in this environment is minimal in most embodiments. In a preferred embodiment of this computing environment 2108-1, there are no applications or real files in this environment and only references, links, or points to these programs or real files (other computing environments Note that they may have minimum temporary storage requirements as a result of their minimum disposal requirements). Computing environment 2108-1 is identified as a user interface computing environment (UICE) and provides an interface between a human user or operator 2129 and computing system 2100.

통상적으로, 사용자 인터페이스 계산 환경(UICE; 2108-1)은 단지 동작 시스 템 요소들만을 포함하는 제2 템플릿 부분과, 계산 환경에 식별되는 계산 또는 데이터 처리 또는 제어 능력을 제공하는 데 필요로되는 애플리케이션 프로그램(존재한다면)을 구비할 것이다. 가령, UICE는 우선 인간 사용자(2129)로부터 요청 및 명령을 수신하고 이들을 처리하여 제어 및 스위칭 계산 환경으로 신호를 송신할 것이므로, UICE는 그 저장된 제2 템플릿(2122)에 이메일, 네트워크 또는 인터넷 브라우징, 또는 다른 공통적이거나 공통적이지 않은 애플리케이션 프로그램을 구비할 필요가 없다. 또한 다른 계산 환경과는 다른 동작 시스템 또는 그 책임감을 지원하기 위하여 단지 코드, 코드 부분, 라이브러리들, 또는 동작 시스템의 다른 특징만을 포함하는 동작 시스템을 구비해도 좋다. 단지 동작 시스템 요소 및 응용 프로그램 또는 응용프로그램 요소만을 제공하는 이러한 동일한 원리는 또한 다른 계산 환경에 제2 템플릿을 적용하며, 비록 바람직한 접근이라고 생각되지 않지만, 모든 상황에서 마스터 템플릿의 완전한 사본 또는 최소 요구의 동작 시스템 및 애플리케이션 프로그램보다 많은 것이 제공될 수 있다.Typically, a user interface computing environment (UICE) 2108-1 is a second template portion that includes only operating system elements and an application required to provide the computing or data processing or control capabilities identified in the computing environment. Will have a program (if present). For example, UICE will first receive requests and commands from human user 2129 and process them to send signals to the control and switching computing environment, so that UICE will send email, network or internet browsing, to its stored second template 2122, Or there is no need to have other common or non-common application program. It is also possible to have an operating system that includes only code, code portions, libraries, or other features of the operating system in order to support a different operating system or its responsibility than other computing environments. This same principle of providing only operating system elements and application or application elements also applies the second template to other computing environments and, although not considered to be the preferred approach, requires full copies of the master template or minimum requirements in all circumstances. More than operating systems and application programs can be provided.

다른 실시예에서, 가령 영상 처리 동작을 실행하기 위하여 생성되거나 구성된 계산 환경의 실시예에서, STP(2122)는 마이크로소프트 윈도우 2000 동작 시스템 코드 및 어도브 포토샵 애플리케이션 소프트웨어를 저장하며, TDP(2123)는 하나 이상의 입력 디지털 이미지 파일과, 어도브 포토샵 애플리케이션 소프트웨어의 실행중에 생성되는 중간 파일과, 생성된 임의의 출력 파일을 저장한다. TDP(2123)는 가령 이전의 편집을 실행취소하기 위한 파일 또는 클립보드에 복사된 데이터와 같이, 임의의 다른 사용자 또는 임시 시스템 데이터도 저장할 수 있다.In another embodiment, in an embodiment of a computing environment created or configured to perform an image processing operation, for example, STP 2122 stores Microsoft Windows 2000 operating system code and Adobe Photoshop application software, and TDP 2123 is one. The above input digital image file, an intermediate file generated during execution of the Adobe Photoshop application software, and any output file generated are stored. The TDP 2123 may also store any other user or temporary system data, such as data copied to a file or clipboard to undo a previous edit.

실제 구현에 있어서, STP와 TDP는 고체 상태 메모리의 부분, 마그네틱 디스크 드라이브, 또는 임의의 다른 저장 매체와 같은 동일한 물리적 저장 장치일 수 있고, 이들은 서로 다른 물리적 장치이거나 심지어는 다른 형태의 장치일 수 있다. 또한, 본원에 기재된 동적 스위칭 구성 방법의 일부를 이용하여, 심지어는 STP 및/또는 TDP가 가령 하드디스크 드라이브 저장 장치 및 고체 상태 RAM, ROM, EEPROM, 등의 조합과 같은 각각 다수의 유사하거나 유사하지 않은 데이터 저장 형태를 포함한다.In practical implementations, STP and TDP may be the same physical storage device, such as portions of solid state memory, magnetic disk drives, or any other storage medium, which may be different physical devices or even different types of devices. . In addition, using some of the dynamic switching configuration methods described herein, even STP and / or TDP may be multiple or similar, respectively, such as a combination of hard disk drive storage and solid state RAM, ROM, EEPROM, and the like. Data storage forms.

저장 장치(2121)는 선택적으로 스위칭 가능하게 CPU(2120)에 결합가능하다. 도9의 실시예에는, CPU(2120)를 STP(2122) 및 TDP(2123)로/로부터 연결하거나 해제하기 위한 개별 제1 스위치(2124) 및 제2 스위치(2125)가 도시된다. 스위치에 대한 간단한 아이콘이 도시되어 있으나, 본원에 제공되는 기재의 관점에서 통상적으로는 그렇지 않지만 연결되거나 해제되는 간단한 와이어일 수 있고, 보다 일반적으로는 인터페이스 버스(buss) 및 그 인터페이스 버스상의 신호를 위한 신호 조건화 회로와 같이 한 쌍의 도체일 수 있음이 이해될 것이다. CPU를 저장 장치에 연결하기 위해 스위칭하는 것은 CPU와 저장 장치 사이의 통신을 인에이블하는 임의의 수단에 의해 성취될 수 있고, CPU를 저장 장치에서 해제하기 위해 스위칭하는 것은 본원 명세서의 다른 부분에서 기재된 것처럼 CPU와 저장 장치 사이의 통신을 디스에이블하는 임의의 수단에 의해 성취될 수 있다. 이러한 STP-CPU 및 TDP -CPU 스위치(224, 225)의 동작 또는 컴퓨터 시스템(2100)의 무결성을 보호하기 위하여 다른 구조 및 절차와 상호 동작하는 CPU 스위치(별도 도시 안함)로의 보다 일반적인 저장 장치(2221)는 시스템(2100)의 다른 요소가 훨씬 상세히 기재된 후에 기재될 것이다.The storage device 2121 is selectively switchable to the CPU 2120. In the embodiment of FIG. 9, separate first and second switches 2124 and 2125 are shown for connecting or disconnecting the CPU 2120 to / from the STP 2122 and the TDP 2123. Although a simple icon for a switch is shown, it may be a simple wire that is not otherwise connected or disconnected from the perspective of the description provided herein, and more generally for interface buses and signals on that interface bus. It will be appreciated that there may be a pair of conductors, such as a signal conditioning circuit. Switching to connect the CPU to the storage device can be accomplished by any means that enables communication between the CPU and the storage device, and switching to release the CPU from the storage device is described elsewhere herein. As can be accomplished by any means that disables communication between the CPU and the storage device. More general storage 2222 to a CPU switch (not shown) that interacts with other structures and procedures to protect the operation of these STP-CPU and TDP-CPU switches 224, 225 or the integrity of computer system 2100. Will be described after other elements of the system 2100 are described in greater detail.

주변 스위치(2157)는 주변 장치, 입력 장치, 출력 장치 등의 임의의 하나 또는 조합을 연결 및 해제(또는 인에이블링 및 디스에이블링)하기 위하여 제공된다. 예를 들어, 키보드, 마우스, 네트워크 인터페이스 또는 NICs, 마이크로폰, 스피커, 헤드셋, 플로피 디스크 드라이브(FDD), 하드 디스크 드라이브(HDD), PC 카드, 메모리 카드, CD, DVD, 시리얼 또는 패럴렐 인터페이스 장치, GPS 장치, USB 장치, 스캐너, 바이오메트릭 리더, 무선 인터페이스, 또는 장치의 임의의 다른 주변기기가 특정 계산 환경에 할당될 수 있다. 스위치(21517)는 데스크탑 및 사용자 인터페이스 계산 환경(UICE)(2108-1)의 일부인 것으로 도시되어 있지만, 개별 독립 스위치 또는 CSCE나 다른 제어 계산 환경에 의해 제어되는 스위치 서브시스템으로써 생각되어도 좋고 이렇게 실행되어도 좋다. 다른 실시예에서, 스위치는 필요로 될 때 그리고 허용된 기반하에서 제어되며 다른 계산 환경으로 주변기기를 직접 결합한다. 다른 실시예에서, 계산 환경으로부터의 비디오 출력은 주변기기 또는 입출력 스위칭 시스템을 통하여 스위칭 및/또는 처리되어도 좋다. 이러한 주변기기 스위칭 및 접속 능력은 저장 장치용의 다른 스위칭 시스템(2150)과 결합되어도 좋고 본 명세서의 다른 곳에서 기재된 대로 CSCE(2108-2)에 의해 제어되어도 좋다. 계산 환경(2108-1)은 또한 그 때 필요로 되지 않거나 계산 환경의 특수 기능 및 동작에 대하여 비활성되는 부가적인 요소를 포함해도 좋다. 그러한 부가적인 요소는 예를 들면 ROM, RAM, ASIC(s), 및/또는 부가적인 회로 및 로직 요소를 포함한다.Peripheral switch 2157 is provided for connecting and disconnecting (or enabling and disabling) any one or combination of peripherals, input devices, output devices, and the like. For example, keyboards, mice, network interfaces or NICs, microphones, speakers, headsets, floppy disk drives (FDD), hard disk drives (HDDs), PC cards, memory cards, CDs, DVDs, serial or parallel interface devices, GPS The device, USB device, scanner, biometric reader, wireless interface, or any other peripheral of the device may be assigned to a particular computing environment. Although switch 221517 is shown as being part of the desktop and user interface computing environment (UICE) 2108-1, it may be considered or implemented as a separate standalone switch or switch subsystem controlled by a CSCE or other control computing environment. good. In other embodiments, the switch is controlled when needed and on an allowed basis and directly couples peripherals to other computing environments. In other embodiments, video output from the computing environment may be switched and / or processed through peripherals or input / output switching systems. This peripheral switching and connection capability may be combined with other switching systems 2150 for storage devices or may be controlled by CSCE 2108-2 as described elsewhere herein. Computing environment 2108-1 may also include additional elements that are not needed at that time or that are inactive with respect to special functions and operations of the computing environment. Such additional elements include, for example, ROM, RAM, ASIC (s), and / or additional circuitry and logic elements.

보호된 저장 및 판독/기록 제어 계산 환경Protected storage and read / write control calculation environment

보호된 저장 컴퓨터 환경(PSCE)(2108-3)은 원본의 또는 제1의 마스터 템플릿(PMT; 2148)을 마스터 템플릿 보호된 저장 장치(2142)에 저장하고 제1 사용자 데이터(2149)를 사용자 데이터 보호된 저장 장치(2143)에 저장하도록 구성된다. 일 실시예에서, 보호된 저장 컴퓨터 환경(PSCE)(2108-3)에 의해 실행되는 기능 및 동작은 제어 및 스위칭 계산 환경(2108-2)에 의해 실행되는 기능 및 동작과 결합될 수 있고, 그 역의 경우도 같다.The protected storage computer environment (PSCE) 2108-3 stores the original or first master template (PMT) 2148 in the master template protected storage device 2142 and stores the first user data 2149 in user data. Configured to store in the protected storage device 2143. In one embodiment, the functions and operations executed by the protected storage computer environment (PSCE) 2108-3 may be combined with the functions and operations executed by the control and switching computing environment 2108-2. The same applies to the reverse.

마스터 템플릿은 다양한 형태 및 내용을 취하며, 예를 들어 컴퓨터 시스템 도는 컴퓨터 시스템의 요소의 이상적인 상태를 나타내는 데이터(명령, 지시, 데이터 요소 등)의 사본일 수 있다. 마스터 템플릿은 예를 들어 동작 컴퓨터 시스템 또는 컴퓨터 시스템의 요소로부터 데이터를 복사함으로써 생성되거나 다른 방법으로 생성될 수 있다. 컴퓨터 시스템은 마스터 템플릿을 생성하기 전에 이상적인 상태에 있다. 컴퓨터 시스템의 이상적인 상태는 그 컴퓨터 시스템에 접속할 수 있는 데이터에 의해 표현될 수 있다. 여기서 상이한 제2 템플릿은 상이한 계산 환경에서 사용되어야 하며, 다른 계산 환경(2108)과 개별적으로 통신될수 있는 부분을 갖는 상이한 마스터 템플릿 부분 또는 단일 마스터 템플릿이 존재할 것이다. 이러한 문맥 내에서 데이터는 운영 시스템(예를 들어, 리눅스, 유닉스, 윈도우즈 98, 윈도우즈 2000, 및 이러한 운영 시스템들에 대한 강화 및 확장), 애플리케이션(예를 들어, 워드퍼펙(WordPerfect), 마이크로소프트 오피스), 사용자 데이터(예를 들어, 운영시스템 프리퍼런스(preference), 배경 화면, 생성된 문서), 및 요소 데이터(예를 들어, BIOS, PRAM, EPROM)를 포함할 수 있다. 일부 실시예에서, 데이타는, 로컬 및 원격 데이타 저장 장치를 포함하는 컴퓨터 시스템과, 본 발명의 보호 조치 및 절차가 이들 다른 데이타 엘리먼트를 유지하는데 준수되는 한, 다른 데이타 베이스의 데이타에 액세스가능한 임의의 정보를 또한 포함하거나 대안적으로(alternatively) 포함할 수 있다. 예를들어, 컴퓨터 시스템용 마스터 템플릿(template)는, 마이크로소프트 윈도우즈(Microsoft Windows) 98 또는 2000 운영체제, 워드퍼펙트(WordPerfect) 애플리케이션, 마이크로소프트 워드(Microsoft Word) 애플리케이션, 및 사용자에 의해 작성된 문서들과 같은 상기 컴퓨터 상에 인스톨(install)된 모든 정보를 포함할 수 있다. 정보들은 위에서 설명된 컴퓨터 시스템에 액세스가능한 한 또는 다중 기억 엘리먼트 전반에 인스톨될 수 있다. 또한, 마스터 템플릿은 BIOS 세팅의 복사 버전 또는 이상적 상태 버전을 포함할 수 있고, 특정 계산 환경에 적합한 다중 BIOS를 제공할 수 있다.The master template takes a variety of forms and contents and may be, for example, a copy of data (commands, instructions, data elements, etc.) representing the ideal state of a computer system or element of the computer system. The master template may be generated or otherwise generated, for example, by copying data from a working computer system or elements of a computer system. The computer system is in an ideal state before generating the master template. The ideal state of a computer system can be represented by data that can be connected to that computer system. Here, different second templates must be used in different computing environments, and there will be different master template portions or single master templates with portions that can be communicated separately with other computing environments 2108. Within this context, data can be stored in operating systems (e.g., Linux, Unix, Windows 98, Windows 2000, and enhancements and extensions to these operating systems), applications (e.g., WordPerfect, Microsoft Office). ), User data (eg, operating system preferences, wallpaper, generated documents), and element data (eg, BIOS, PRAM, EPROM). In some embodiments, the data may be any computer that includes local and remote data storage devices, and any data accessible to data in other databases, as long as the protection measures and procedures of the present invention are followed to maintain these other data elements. Information may also be included or alternatively included. For example, a master template for a computer system may include a Microsoft Windows 98 or 2000 operating system, a WordPerfect application, a Microsoft Word application, and documents created by a user. It may include all the information installed on the same computer. Information can be installed across one or multiple storage elements accessible to the computer system described above. In addition, the master template may include a copy or ideal state version of the BIOS settings, and may provide multiple BIOSs suitable for a particular computing environment.

일부 실시예에서, 마스터 템플릿은 새로 구매된 컴퓨터 시스템의 스냅샷(snapshot)을 나타낼 수 있다. 이러한 시스템은 통상적으로 운영체제와 미리 인스톨된 다양한 애플리케이션을 갖는 이상적 상태에 놓일 수 있으며, 이에 의해 사용자가 컴퓨터 시스템을 사용 시작하는 것을 가능케 한다. 특정 사용자를 위해, 마스터 템플릿은, 예를들어 운영 체제, 애플리케이션, 및 사용자 맞춤(customization)을 포함하는 컴퓨터 시스템의 이상적 상태를 나타낼 수 있다. 예롯, 사용자 맞춤은 사용자 애완동물의 사진과 같은 데스크탑 배경용 사진 또는 ".jpg" 이미지의 사용자 우선 선택을 포함할 수 있다.In some embodiments, the master template may represent a snapshot of a newly purchased computer system. Such a system can typically be placed in an ideal state with an operating system and various preinstalled applications, thereby allowing a user to start using the computer system. For a particular user, the master template may represent an ideal state of a computer system, including, for example, an operating system, an application, and customization. For example, user customization may include user preference of a desktop background picture or ".jpg" image, such as a picture of a user pet.

선택적으로, 마스터 템플릿은 제 1 컴퓨터 시스템으로부터 형성될 수 있고 뒤이어 상이한 컴퓨터 시스템용 마스터 템플릿로서 사용될 수 있다. 제1 컴퓨터 시스템은 제조자(manufacturer) 컴퓨터 시스템일 수 있다. 이에 따라 제 1 컴퓨터 시스템의 이상적인 상태는 제 2 컴퓨터 시스템 또는 임의의 갯수의 컴퓨터 시스템으로 전달 수 있다. 일부 구현예에서, 마스터 템플릿은 하나의 계산 환경에서 만들어질 수 있고 그 다음 적절한 보호수단이 이동되고 마스터 템플릿로서 저장된다. 본 발명의 실시예는 마스터 템플릿의 엘리먼트를 업데이트, 패칭(patching), 재설치(reinstalling), 및 대치하기 위한 지지(support)를 제공하는데 이점이 있어서, 이들 동작이 실질적으로 동일하거나 동일한 사용자 인터랙션(interaction)을 갖고 이에따라 실질적으로 동일하거나 동일한 동작 결과를 갖도록 수행될 수 있다. 마스터 템플릿은 대안적으로 선택적 복사 프로세스에 의해 형성될 수 있다. 예를들어, 사용되는 특정 OS에 따라, 프로그램이 레지스트리(registry)를 질문(interrogate)하고, 어떤 엔트리(entry)가 특정 프로그램 또는 애플리케이션과 관련있는가를 결정하고, 다음, 단지 이들 파일과 특정 프로그램 또는 애플리케이션과 관련있는 엔트리만을 마스터 템플릿에 선택적으로 복사하도록 선택할 수 있다.Optionally, the master template may be formed from the first computer system and subsequently used as a master template for different computer systems. The first computer system may be a manufacturer computer system. Thus, the ideal state of the first computer system can be transferred to the second computer system or to any number of computer systems. In some implementations, the master template can be made in one computing environment and then appropriate safeguards are moved and stored as the master template. Embodiments of the present invention have the advantage of providing support for updating, patching, reinstalling, and replacing elements of a master template, so that these operations are substantially the same or the same user interaction. ) And thus may have substantially the same or identical operation results. The master template may alternatively be formed by an optional copy process. For example, depending on the particular OS used, the program interrogates the registry, determines which entries are associated with a particular program or application, and then only those files and the particular program or application. You can choose to selectively copy only the entries related to the master template.

도9의 보호 저장 장치 및 읽기/쓰기 계산 환경에 대한 예시된 실시예에서, 마스터 템플릿 보호 저장 장치(2142) 또는 사용자 데이타 보호 저장 장치(2143)에 저장된 이진 정보의 실행을 허용하는 임의의 프로세서에 대한 연결은 존재하지 않는다. 이러한 분리(isolation)는 CPU와 같은 이러한 처리 능력(capability)을 물 리적으로 제공하지 않거나, 보호된 저장 장치로부터 이러한 CPU를 차단하거나 단절시킴으로써 달성될 수 있다. 이러한 차단 또는 단절은 본 명세서의 다른 부분에서 언급된 스위치들 또는 보호된 저장 장치의 이진 데이타 - 컴퓨터 프로그램 코드 지시 또는 데이타 - 를 방지하기 위한 다른 공지된 수단을 이용하여 달성될 수 있다.In the illustrated embodiment of the protected storage and read / write computing environment of FIG. No connection exists. This isolation can be achieved by not physically providing this capability, such as a CPU, or by blocking or disconnecting such a CPU from protected storage. Such blocking or disconnection can be achieved using other known means for preventing the binary data-computer program code instructions or data-of the switches or protected storage devices mentioned elsewhere herein.

본 실시예에서, 마스터 템플릿 보호 저장 장치(2142) 또는 사용자 데이타 보호 저장 장치(2143)에 저장된 이진 정보 상에서 허용된 유일한 처리 동작은 읽기 동작이며, 일부 예(본 명세서의 다른 부분에 설명되어 있음)에서는 쓰기 동작이다. 이들 동작은 편의상 복사(copy) 동작으로 불린다.In this embodiment, the only processing operation allowed on the binary information stored in the master template protected storage 2142 or user data protected storage 2143 is a read operation, some examples (described elsewhere herein). Is a write operation. These operations are called copy operations for convenience.

본 발명의 구조, 시스템, 방법, 절차 및 컴퓨터 프로그램 제품은 컴퓨터, 계산 장치, 정보 어플라이언스(appliance), PDA, 셀 폰 및 다른 프로세스 결합 장치를 해킹(hacking), 바이러스, 사이버-테러리즘으로부터 보호하고, 스파이 소프트웨어(spy software), 키스트로크 리코더(keystroke recorder)와 같은 잠재적 손상 또는 침입으로부터 보호하고, 해킹, 바이러스, 웜(worm), 트로이 목마(Trojan horse)로부터의 손상과 유사한 위협과, 악의를 가졌는지 또는 의도치 않게 도입되었거나 노출되었는지에 관계없는 취약점(vulnerability)으로부터 보호한다.The structures, systems, methods, procedures and computer program products of the present invention protect computers, computing devices, information appliances, PDAs, cell phones and other process combination devices from hacking, viruses, cyber-terrorism, Protect against potential damage or intrusions, such as spy software, keystroke recorders, and threats similar to those from hacking, viruses, worms, Trojan horses, and Or protects against vulnerability regardless of whether it was inadvertently introduced or exposed.

본 발명의 일실시예에서, 마스터 템플릿 보호 스토어(2142)는 다른 계산 환경과 통신될 수 있고 상기 계산 환경의 목적된 동작을 위한 동작 능력을 제공하는데 충분한, 하나 이상 세트의 컴퓨터 프로그램 코드를 저장한다. 일부 실시예에서, 상용자 또는 수행될 시스템 자체에 의해 요구된 임의의 동작을 허용하는 컴퓨터 프로그램 코드의 단일 세트가 존재하며, 각 계산 환경은 본 명세서에서 설명된 방식 으로 한번에 이러한 완전한 마스터 템플릿의 복사(copy)를 수신한다. 다른 실시예에서, 마스터 템플릿 보호 스토어(2142)는 다중의 상이한 세트를 수용하며 단지 특정 계산 환경을 요구하는 동작들을 제공하는 세트만이 여기에 세팅된다. 이것은 일반적으로 보다 소형이며 보다 빠른 복사 동작과 보다 낮은 개별 및 전체 저장 장치 요구를 야기한다. 삭제가 요구되는 경우에 추가적인 시간 절약이 보다 소형인 템플릿 크기에 대하여 실현된다. 상이한 2차 템플릿이 필요에 따라 저장되거나 생성될 수 있으나, 2차 템플릿을 복사에 대비한 형태로 저장하는 것은 낮은 안전 리스크와 큰 동작 스피드에 노출시킨다.In one embodiment of the invention, the master template protection store 2142 stores one or more sets of computer program code sufficient to be in communication with other computing environments and provide operational capabilities for the intended operation of the computing environment. . In some embodiments, there is a single set of computer program code that allows any operation required by the trader or the system itself to be performed, and each computing environment is a copy of this complete master template at a time in the manner described herein. Receive a copy. In another embodiment, the master template protection store 2142 accommodates multiple different sets and only sets are set here that provide the operations that require a particular computing environment. This generally results in smaller and faster copy operations and lower individual and total storage requirements. Additional time savings are realized for smaller template sizes where deletion is required. Different secondary templates can be stored or created as needed, but storing secondary templates in a copy ready form exposes to low safety risks and large operating speeds.

본 발명의 일실시예에서, 사용자 데이타 보호 스토어(2143)는 보호 사용자 데이타(2149)로 지칭되는, 오리지날 버전(또는 사본)의 사용자 데이타 또는 파일을 저장한다. 예를들어, 이러한 사용자 데이타는 이메일, 임의 형태의 이메일 첨부물, 워드 처리 문서, TIFF 이미지 파일, JPEG 이미지 파일, MP3 파일, 컴퓨터 프로그램, 저장된 버전의 동작 시스템 도는 동작 시스템 파일, 저장된 버전의 컴퓨터 프로그램 애플리케이션 프로그램, 장치 드라이버, 및 임의의 형태의 컴퓨터 데이타, 파일, 또는 "0" 및/또는 "1" 비트의 조합과 같은 데이타 또는 파일의 세트를 포함하거나 이로부터 선택될 수 있다. 흥미롭게도, 사용자 데이타 보호 스토어는 의식적으로 또는 무의식적으로 컴퓨터 바이러스 또는 컴퓨터 바이러스를 포함하는 파일, 컴퓨터 로봇(robot) 또는 봇(bot), 스파이웨어, 또는 다른 악성 컴퓨터 프로그램 코드를 포함할 수 있다. 보호 저장 장치(2142, 2143) 내의 이러한 바이러스, 봇, 스파이웨어, 또는 다른 악성 컴퓨터 프로그램 코드의 존재 또는 저장은 어떠한 위협도 부가하지 못하며 저장 장치 내에 존재한다는 것 자체로 어떠한 해도 끼칠 수 없다. 본 발명의 일실시예에서, 프로세서는 저장된 데이타 또는 컴퓨터 프로그램 코드에 어떠한 액세스도 요구되지 않는 경우에 보호 저장 장치로부터 결합 해제(decouple)된다. 그러나, 다른 실시예에서, 프로세서는 상기 보호 코드 저장 장치에 결합된 상태가 유지되는데 이는 상기 프로세서가 데이타 또는 컴퓨터 프로그램 파일이을 실행할 수 없도록 구성되었고 보호 저장 장치, 프로세서 도는 보호 저장 장치 계산 환경(2108-3)에 대한 손상을 야기할 수 없기 때문이다. 일부 실시예에서, 보호 저장 장치 계산 환경(2108-3) 내에서 보호 저장 장치와 프로세스 사이의 연속 통신 경로를 유지하는 결정은 상기 보호 저장 장치 계산 환경에서 지지되는 기능 또는 동작 세트에 의존한다. 이들 동일한 고려사항(consideration)이 사용자 인터페이스 계산 환경과 제어 및 스위칭 환경과 같은 다른 계산 환경(사용자 데이타 분리(isolated) 계산 환경은 제외)과 보호 저장 장치 계산 환경을 결합하는 본 발명의 실시예에 적용될 수 있다. In one embodiment of the present invention, user data protection store 2143 stores an original version (or copy) of user data or files, referred to as protected user data 2149. For example, such user data may include e-mails, any form of e-mail attachments, word processing documents, TIFF image files, JPEG image files, MP3 files, computer programs, stored versions of operating system or operating system files, stored versions of computer program applications. Programs, device drivers, and any form of computer data, files, or sets of data or files, such as a combination of "0" and / or "1" bits. Interestingly, the user data protection store may include computer viruses or files containing computer viruses, computer robots or bots, spyware, or other malicious computer program code consciously or unknowingly. The presence or storage of such viruses, bots, spyware, or other malicious computer program code in protected storage 2142, 2143 does not pose any threat and does not do anything by itself in storage. In one embodiment of the invention, the processor is decoupled from the protected storage device when no access to the stored data or computer program code is required. However, in another embodiment, the processor remains coupled to the protected code storage device, which is configured such that the processor is unable to execute data or computer program files and that the protected storage device, processor, or protected storage computing environment 2108-. This is because it cannot cause damage to 3). In some embodiments, the decision to maintain a continuous communication path between the protected storage device and the process within the protected storage computing environment 2108-3 depends on the set of functions or operations supported in the protected storage computing environment. These same considerations apply to embodiments of the present invention that combine a protected storage computing environment with a user interface computing environment and other computing environments (except user data isolated computing environments), such as control and switching environments. Can be.

설명된 바와 같이, 본 발명의 일실시예에서, 마스터 템플릿 또는 사용자 데이타, 컴파일(compilation), 바이러스 스캐닝 또는 감지, 검사, 또는 다른 특별 동작들의 초기 로딩 또는 리로딩(reloading)을 위하여 보호 저장 장치 계산 환경(2108-3)은 스위치(2144, 2145)를 경유하여 보호 스토어에 결합되도록 스위치될 수 있는 CPU(2140)와 같은 결합 해제된 또는 금지된(disabled) 프로세서를 포함할 수 있다. 바이러스 또는 다른 악의적인 컴퓨터 프로그램 코드가 존재하고 실행되었다면, CPU와 보호 저장 장치 사이에 연결을 허용하는 것은 주의조치가 보호 저장 장치 내의 다른 데이타의 오염을 방지하기 위해 취해진 경우에만 정상적으로 허용된다. 단지 "단순 복사(dumb copy)" 동작만이 보호 저장 장치 사이에 지지되는 실시예에서, CPU 또는 다른 프로세서는 보호 저장 장치에 결합되거나 연결되도록 유지될 수 있다. 단순 복사는 오염 또는 감염을 야기하는 컴퓨터 프로그램 코드에 복사되는 파일을 오픈하거나 노출시키지 않는 복사이다. 단순 복사는 비트-바이-비트(bit-by-bit), 바이트-바이-바이트(byte-by-bite) 또는, 예를들어 고정 하드웨이 로직 회로 또는 ASIC에 의해 주의사항이 취해지는 경우에 소프트웨어 또는 펌웨어(firmware)를 사용하여, 또는 하드웨어와 소프트웨어/펌웨어의 조합을 이용하여 구현되는 것과 같은 다른 복사 또는 비트 리플리케이션(replication) 동작일 수 있다. As described, in one embodiment of the invention, a protected storage computing environment for initial loading or reloading of master templates or user data, compilation, virus scanning or detection, inspection, or other special operations. 2108-3 may include a decoupled or disabled processor, such as a CPU 2140 that may be switched to couple to a protected store via switches 2144, 2145. If a virus or other malicious computer program code is present and executed, allowing a connection between the CPU and the protected storage device is normally allowed only if precautions have been taken to prevent contamination of other data in the protected storage device. In embodiments in which only "dumb copy" operations are supported between the protected storage devices, the CPU or other processor may be kept coupled or coupled to the protected storage device. A simple copy is a copy that does not open or expose a file that is copied to computer program code that causes contamination or infection. Simple copy can be performed either by bit-by-bit, byte-by-bite, or software when a precaution is taken by a fixed hardware logic circuit or ASIC, for example. It may be another copy or bit replication operation, such as implemented using firmware or using a combination of hardware and software / firmware.

보호 소토리지 계산 환경(2108-3)은 다른 계산 환경(2208-1, 2208-2, 2208-4 및 2208-5)(또는 임의의 M 계산 환경)과, MTPS 인에이블(enable) 스위치(2251)로부터의 복사, UDPS 인에이블 스위치(2252)로부터의 복사, 및 UDPS(2253)으로의 쓰기와 같은 다수의 스위치(2250)를 통하여 연결될 수 있다.The protected storage computing environment 2108-3 includes other computing environments 2208-1, 2208-2, 2208-4, and 2208-5 (or any M computing environment), and an MTPS enable switch 2225. ), A copy from the UDPS enable switch 2252, and a write to the UDPS 2253.

본 발명의 일실시예에서, MTPS 인에이블 스위치(SW1)(2251)로부터의 명령(command)은 예를들어 계산 환경(2108-1)의 STP(2122)와 같은 계산 환경의 제 2 템플릿 부분으로 적절한 마스터 템플릿 부분이 액세스되고 (또는 액세스 거부되거나) 읽기 또는 복사되는 것을 허용(또는 차단)한다. UDPS 인에이블 스위치(SW2)(2252)로부터의 복사는 예를들어 계산 환경(2108-1)의 TDP(2133)와 같은 계산 환경의 사용자 데이타 저장 장치 부분으로 적절한 사용자 데이타 또는 파일이 액세스되고 ( 또는 액세스 거부되거나) 읽기 또는 복사되는 것을 허용(또는 차단)한다. 통상적으로, 보호 저장 장치(2143) 내 사용자 데이타의 전체 세트들 대신에, 하나의 동작을 수행하는데 필요한 단지 하나의 파일 또는 파일들의 세트가 복사된다. 다른 실시예에서는 전체 사용자 데이타가 복사되나 이것은 비효율적이며, 유지, 진단, 및/또는 수리 동작 도중의 임의의 경우를 제외하고는, 통상적으로 명백한 이익을 목적으로 기능하지 않는다.In one embodiment of the invention, the command from the MTPS enable switch (SW1) 2251 is directed to a second template portion of the computing environment, such as, for example, STP 2122 of the computing environment 2108-1. Allow (or block) the appropriate master template portion to be accessed (or denied) or read or copied. The copy from the UDPS enable switch (SW2) 2252 is for example the appropriate user data or file to be accessed by the user data storage portion of the computing environment, such as TDP 2133 of the computing environment 2108-1, and / or Allow (or block) access to be denied or read or copied. Typically, instead of full sets of user data in protected storage 2143, only one file or set of files needed to perform an operation is copied. In other embodiments the entire user data is copied but this is inefficient and typically does not function for obvious benefit except in any case during maintenance, diagnostic and / or repair operations.

UDPS(SW3)(2253)에 대한 쓰기는 적절한 사용자 데이타 또는 파일이 이들이 생성되거나 변형되는 다른 계산 환경들중 하나로부터 액세스되고 (또는 액세스 거부되거나) 읽기 또는 복사되는 것을 허용(또는 차단)하고 계산 환경(2108-3)의 UDPS(2143)으로 다시 쓰기되는 것을 허용한다. 일부 실시예에서, 단일 스위치는 양-방향 허용가능성을 제공하여 사용자 데이타 저장 저장 장치(2143)이 읽기 및 쓰기 되도록 하여 단지 하나의 스위치(또는 스위치 세트)가 요구된다. MTPS(2142)로부 복사되고 전송된 제 2 템플릿이 통상 수정되지 않기 때문에, 이를 MTPS(2142)에 다시 쓰기할 필요가 통상적으로 존재하지 않는다. 분리된 양-방향 교환(handshake) 및 제어 신호 또는 레벨이 복사, 복사를 위한 대기, 복사 완료, 데아타 수신 등과 같은 요구되는 이벤트를 위한 시그널링 프로토콜로서 이용될 수 있다. 패리티 또는 다른 에러 감지 및 에러 정정이 전송 에러 없이 일어나는지를 확인하기 위하여 본 기술분야에서 알려진 바대로 본 발명의 양태 및 특징과 일치하도록 구현될 수 있으나, 이점은 선택적인 사항이다.Writes to UDPS (SW3) 2253 allow (or block) appropriate user data or files to be accessed (or denied) to be read or copied from one of the other computing environments in which they are created or modified and the computing environment Allow writing back to UDPS 2143 of 2108-3. In some embodiments, a single switch provides bi-directional tolerance to allow user data storage 2143 to read and write, requiring only one switch (or set of switches). Since the second template copied and transmitted from the MTPS 2142 is not normally modified, there is typically no need to write it back to the MTPS 2142. Separate bi-directional handshake and control signals or levels can be used as signaling protocols for required events such as copy, wait for copy, copy complete, data reception, and the like. Although parity or other error detection and error correction may be implemented in accordance with aspects and features of the present invention as is known in the art to ascertain that it occurs without transmission errors, the advantages are optional.

본 발명의 일실시예에서, 마스터 템플릿의 수정(또는 시스템에서 사용될 수 있는 다른 템플릿)은 (i) 사용자 분리 계산 환경중 하나에 복사하고 로딩하고, 다음 (ii) 임의의 필요한 동작 시스템, 애플리케이션 프로그램, 컴파일러, 디버깅(debugging), 링킹(linking), 또는 이 기술분야에서 알려진 다른 프로그래밍 절차를 이용하여 이를 업데이트하고, (iii) 보호 저장 장치에 새로운 마스터 템플릿로서 이를 다시 복사하고 저장하는 것을 포함한다. 복사되고 저장된 버전의 마스터 템플릿은 원래의 것을 대치하거나 새로운 파일 또는 업데이트된 버전으로서 저장될 수 있다.In one embodiment of the invention, modifications to the master template (or other template that may be used in the system) are (i) copying and loading into one of the user-separated computing environments, and (ii) any necessary operating system, application program. Updating it using a compiler, debugging, linking, or other programming procedure known in the art, and (iii) copying and saving it again as a new master template to the protected storage device. The copied and saved version of the master template can be replaced with the original or saved as a new file or an updated version.

이들 스위치 또는 스위치의 세트는 계산 환경(2108-3)의 구성요소 또는 구성요소의 세트, 계산 환경(2108-3)의 외부 구성요소의 세트 또는 분리 구성요소, 또는 이들의 일부 조합일 수 있다. 본 발명의 일실시예에서, 상기 스위치는 하드웨어 로직 회로에 제공되며, 다른 실시예에서, 매우 제한되게 설정된 처리 능력을 갖는 마이크로-제어기에 의해 구현되어, 악성 코드가 실행되는 것을 허용하지 않는 정교한(sophisticated) 다중 구성요소 및 다중 신호 스위칭 구조가 구현될 수 있다. 다른 실시예에서, 상기 스위칭은 응용 주문형 집적회로(ASIC)로서 구현된다. 다른 실시예에서,상기 스위칭은 제 2 템플릿 부분(STP)으로서 설치된 매우 제한된 인스트럭션(instruction) 세트를 갖는 마이크로-프로세서의 제어하에서 실행되어 악성 코드를 실행하거나 그 실행을 허용할 수 없다.These switches or sets of switches may be components or sets of components of computing environment 2108-3, sets or separate components of external components of computing environment 2108-3, or some combination thereof. In one embodiment of the invention, the switch is provided in a hardware logic circuit, and in another embodiment, implemented by a micro-controller with a very limited set of processing capability, the switch does not allow sophisticated code to be executed. Sophisticated multiple components and multiple signal switching structures can be implemented. In another embodiment, the switching is implemented as an application specific integrated circuit (ASIC). In another embodiment, the switching is executed under the control of a micro-processor having a very limited set of instructions installed as the second template portion (STP) to execute or not allow malicious code to be executed.

본 명세서에서 설명된 바와 같이, 보호 저장 장치는 임의의 형태 또는 혀애 조합 또는 저장 장치 장치 또는 메모리 상 또는 내부에서 구현될 수 있다. 다른 실시예에서, 외장의 포터블(portable) 보호 저장 장치를 위한 준비가 마련되어, 예 를들어 사용자가 신용카드 크기의 (플래시 메모리 카드, USB 메모리 L장치, 소니 메모리스틱(Sony MemoryStick), PC 카드 기반 메모리, 또는 다른 임의의 형태의 저장 장치와 같은) 저장 장치 장치 상에 보호 저장 장치를 보유할 수 있고, 지지 컴퓨터 또는 장치의 임의의 하나에 플러그인(plug in) 할 수 있다. 본 발명의 일실시예에서, 구조(architecture), 시스템, 및 방법이 선택적인 숨겨진 보호 백업 저장 장치 시스템을 제공한다.As described herein, a protected storage device may be implemented on or within any form or combination of tongues or storage device or memory. In another embodiment, provision is made for an external portable protective storage device, for example, a user may be credit card sized (flash memory card, USB memory device, Sony MemoryStick, PC card based). It can hold a protective storage device on a storage device (such as a memory, or any other form of storage device), and can plug in to any one of the supporting computer or device. In one embodiment of the invention, the architecture, system, and method provide an optional hidden protected backup storage system.

제어 & 스위칭 계산 환경Control & Switching Computation Environment

이제, (사용자 인터페이스 계산 환경(2108-1)과 협조하여) 시스템(2100)의 다른 계산 환경의 동작을 제어하고 조정하는 책임을 갖는 제어 및 스위칭 계산 환경(CSCE)(2108-2)에 대하여 설명하고자 한다. 다소 단순화된 말로, 스위치는 소스(source)를 목적지(destination)에 연결한다. 시스템(2100)에 대한 일부 실시예에서, 데이타 스토어 스위치 시스템 특성은 지지되고 이러한 특성은 선택된 소스와 목적지 사이의 통신 경로를 구성하는 것을 추가로 지지할 수 있다. 적어도 일부 실시예에서, CSCE 또는 다른 제어 계산 환경이 임의의 주변장치를 계산 환경에 스위치하고 결합하는 능력을 가짐이 주지된다.A control and switching computing environment (CSCE) 2108-2 is now described that is responsible for controlling and coordinating the operation of other computing environments of the system 2100 (in cooperation with the user interface computing environment 2108-1). I would like to. In somewhat simplified terms, a switch connects a source to a destination. In some embodiments for system 2100, data store switch system characteristics are supported and these characteristics may further support configuring a communication path between the selected source and destination. In at least some embodiments, it is noted that a CSCE or other controlled computing environment has the ability to switch and couple any peripheral to the computing environment.

계산 환경(2108-2)은 사용자 인터페이스 계산 환경(UICE)(2108-1)으로부터의 입력을 수신하고 보호 저장 장치 계산 환경(PSCE)(2108-3)의 스위치(2250)(예를들어 스위치 세트 SW1(2251), SW2(2252), 및 SW3(2253))를 각각의 다른 계산 환경(2108)과 인터랙트(interact)하도록 동작하여 프로세서(예를들어 CPU)와 저장 장치 (예를들어 STP 및 TDP) 사이의 연결 또는 통신을 결합하거나 결합 해제(허용 또는 차단)하도록 스위치를 동작시킨다. 스위치 제어는 전기적 연결 및 신호 또는 전압 레벨을 통하여 어느 정도 직접적이거나; 프로세서, CPU, ASIC, 또는 제어 및 스위칭 계산 환경(2108-2)으로부터의 신호를 수신하는 계산 환경 내의 다른 회로 또는 로직 엘리먼트를 통하여 간접적이거나; 이들 직접적 및 간접적 구조 및 방법들의 조합일 수 있다.The computing environment 2108-2 receives input from the user interface computing environment (UICE) 2108-1 and switches 2250 (eg, a set of switches) of the protected storage computing environment (PSCE) 2108-3. SW1 2251, SW2 2252, and SW3 2253 operate to interact with each other computing environment 2108 to process processors (e.g., CPUs) and storage devices (e.g., STP and TDP). Operate the switch to couple or uncouple (allow or disconnect) the connection or communication between the devices. Switch control may be somewhat direct through electrical connections and signal or voltage levels; Indirectly through a processor, CPU, ASIC, or other circuit or logic element within the computing environment that receives signals from the control and switching computing environment 2108-2; It may be a combination of these direct and indirect structures and methods.

제어 및 스위칭 계산 환경(2108-2)의 실시예에서 예시된 바와 같이, 여기에는, 사용자 입력 및 명령 또는 시스템 활동(activity) 및 이벤트에 응답하여, 이용가능 컴퓨터 자원을 포함하는 컴퓨터 시스템(2100)의 다음 현재 상태와 구성(configuration)을 고려하는, UICE(210801)로부터 명령(command)을 수신하는 시스템 스위칭 제어기 유닛(2138)이 포함된다. 일부 실시예에서, 스케쥴링(scheduling) 및 구성요소 우선순위지정(prioritization) 및 이용 통제(abitration)가 또한 시스템 스위치 제어기(2138)에 의해 제공된다. 스위치 구성 및 상태뿐만 아니라 다른 정보 및 데이타가 하나 이상의 버스, 인터페이스, 또는 통신 회로를 경유하여 시스템 스위치 제어기(2139)와 동작가능하게 결합된 스위치 구성 정보 저장 장치(2139)에 저장될 수 있다.As illustrated in the embodiment of the control and switching computing environment 2108-2, this includes a computer system 2100 that includes available computer resources, in response to user input and commands or system activities and events. A system switching controller unit 2138 is received that receives a command from the UICE 210801, taking into account the next current state and configuration of the. In some embodiments, scheduling and component prioritization and utilization control are also provided by the system switch controller 2138. Other information and data, as well as switch configuration and status, may be stored in the switch configuration information storage device 2139 operatively coupled to the system switch controller 2139 via one or more buses, interfaces, or communication circuits.

이 실시예에서, CSCE(2108-2)는 하나, 통상적으로는 그 이상의 신호 세트 (2180)를 UICE(2108-1)로부터 수신한다. 이들 신호는 컴퓨터 시스템(2100)의 다른 엘리먼트가 사용자 요청을 수행하도록 구성되도록 일반적으로 사용자 요청 입력을 UICE(2108-1)과 충분히 통신하는 것이 가능하다. 예를들어, 사용자는 마이크로소 프트 워드(Microsoft Word) 문서-처리 프로그램의 개시 또는 인스턴스(instance)를 예상하고 ICE 데스크탑 상의 마이크로소프트 워드 아이콘을 마우스 클릭할 수 있다. UICE(2108-1)는 외부 인간 사용자(2129)에게 UICE(2108-1)와 그의 구성요소(예를들어, CPU(2120) 및 저장 장치(2121))가 윈도우즈 2000 운영체제, 마이크로소프트 워드 2000, 및 사용자가 편집하고자 하는 문서를 설치하였다는 것을 제시하도록 구성될 수 있으나, 실상은 이들을 구비하고 있지 않을 수 있고, 단지 포인터, 링크, 별명(alias), 또는 이들 운영체제, 애플리케이션 프로그램, 및 다른 계산 시스템 엘리먼트 중의 사용자 데이타 파일에 대한 다른 참조를 제공할 수 있다.In this embodiment, CSCE 2108-2 receives one, typically more, signal sets 2180 from UICE 2108-1. These signals are generally capable of sufficiently communicating the user request input with the UICE 2108-1 so that other elements of the computer system 2100 are configured to perform the user request. For example, a user may anticipate the launch or instance of a Microsoft Word document-processing program and mouse click on the Microsoft Word icon on the ICE desktop. UICE 2108-1 provides external human user 2129 to UICE 2108-1 and its components (eg, CPU 2120 and storage 2121) for Windows 2000 operating system, Microsoft Word 2000, And may indicate that the user has installed a document to be edited, but in reality may not have them, merely pointers, links, aliases, or these operating systems, application programs, and other computing systems. You can provide another reference to the user data file in the element.

특히, 마이크로소프트 운영체제 및 마이크로소프트 워드 애플리케이션 프로그램은 MT(2128)로서 존재하고 PSCE(2108-3)의 보호 저장 장치 MTPS(2142) 내에 저장된다. 사용자의 워드 처리 문서는 새로 생성된 것이 아니고 존재하는 것이었다면 저장되어 보호 저장 장치 UDPS(2149)로부터 검색될 수 있을 것이다.In particular, the Microsoft operating system and Microsoft Word application program exist as MT 2128 and are stored in the protected storage MTPS 2142 of the PSCE 2108-3. The user's word processing document may be stored and retrieved from the protected storage UDPS 2149 if it was not new and existed.

시스템 "브레인(brain)"이라 불리는 제어 및 스위칭 계산 환경(CSCE)의 일부 구조 및 동작 특성들에 대해 설명하였고, 이하에서는 CSCE가 참여하는 일부 특정 실시예의 일부 기능 및 동작들의 부분 리스트에 대해 설명하고자 한다. 이들 모든 기능들이 CSCE(또는 다음에 설명될 실시예에서 CCE)에 의해 수행될 필요는 없다. 특정 기능들과 동작들은 전체로서 계산 시스템, CSCE(또는 CCE), 및 다른 계산 환경의 구현에 의존할 것이라는 점이 이해될 수 있을 것이다.Some structural and operational characteristics of a control and switching computational environment (CSCE) called a system "brain" have been described, and in the following, a partial list of some functions and operations of some specific embodiments in which the CSCE participates do. All these functions need not be performed by the CSCE (or CCE in the embodiments to be described below). It will be appreciated that certain functions and operations will depend, as a whole, on the implementation of a computing system, CSCE (or CCE), and other computing environments.

본 발명의 일부 실시예에서, CSCE는 그 자신의 운영체제(OS)를 로딩 후에시스템의 나머지에 의해 허용되고 지지되는 (일부 또는 전체) 기능 또는 동작을 편성 할 스타트업(start-up)(또는 리셋) 상에 로딩한다. 본 발명의 구조, 시스템 및 발명이 중립적인 운영체제로 쓰이거나, 다른 공지의 운영체제가 상이한 계산 환경에 사용되어 원하는 경우 계산 시스템이 상이한 운영체제와 이들 운영체제에 적합한 애플리케이션 프로그램의 수트(suite)를 동작시킬 수 있게 된다. 본 발명의 일부 실시예에서, 계산 시스템 하드웨어가 운영체제와 의도된 동작을 지지할 수 있는 한, 운영체제는 예를들어 계산 환경으로부터 분리된 사용자가 특정 처리 기능 또는 동작을 수행하도록 지정된 경우에 동적으로 결정될 수 있다. In some embodiments of the present invention, the CSCE may start-up (or reset) to organize (some or all) the functions or operations allowed and supported by the rest of the system after loading its own operating system (OS). On). The structure, system, and invention of the present invention may be used as a neutral operating system, or other known operating systems may be used in different computing environments so that the computing system can operate different operating systems and suits of application programs suitable for these operating systems, if desired. Will be. In some embodiments of the invention, as long as computing system hardware can support the operating system and its intended operation, the operating system may be dynamically determined, for example, if a user separate from the computing environment is designated to perform a particular processing function or operation. Can be.

본 발명의 일부 실시예는 상이한 계산 환경에 대하여 상이한 운영체제를 이용할 것이며 이러한 운영체제는 시스템의 필요성에 따라, 사용자 선택 처리 작업, 데이타의 성질, 또는 다른 인자에 따라 시간 또는 작업의 함수로서 동적으로 결정되거나 미리 결정될 수 있다. 예를들어, 공지되거나 발표된 임의의 마이크로소프트 윈도우즈 운영체제(예를들어 윈도우즈 98, 인도우즈 NT, 인도우즈 2000, 인도우즈 XP, 및 이들의 개량, 향상 및 확장), 리눅스(Linux), 유닉스(Unix), 에플(Apple) 운영체제, 상이한 디스크 운영체제(DOS), 또는 다른 특화된 또는 전용 운영체제 또는 제어 프로그램이, 이들이 의도된 동작과 이 동작을 위한 장치를 지지할 수 있는 한, 상이한 계산 환경에서 사용될 수 있다.Some embodiments of the present invention will use different operating systems for different computing environments and these operating systems may be dynamically determined as a function of time or work, depending on the needs of the system, depending on user selected processing tasks, the nature of the data, or other factors. Can be predetermined. For example, any known or published Microsoft Windows operating system (e.g., Windows 98, Indo Woods NT, Indo Woods 2000, Indo Woods XP, and their improvements, enhancements, and extensions), Linux, Unix ( Unix, Apple operating systems, different disk operating systems (DOS), or other specialized or dedicated operating systems or control programs may be used in different computing environments, as long as they can support the intended operation and the device for that operation. have.

본 발명의 전체는 아니나 일부 실시예에서, CSCE 운영체제 또는 애플리케이션 프로그램(또는 이들 두 개의 조합)은 다음의 예시적인 일부 리스트의 (일부 또는 전체) 기능들을 제어하거나 편성하는 역할을 한다: (i) 데이타 저장 장치 장치(DSD) 연결 스위칭; (ii) 선택적인 명령 및/또는 명령된 동작의 완료의 수신 확인 과 함께 계산 환경에 컴퓨터 프로그램 애플리케이션를 시작하도록 명령 전송 (또는 필요한 경우 하드와이어(hardwired) 동작); (iii) 클릭가능한 윈도우즈 및/또는 코드의 좌표를 추적; (iv) 바이러스 또는 다른 악성 코드의 수리 및 감지, 제거, 및/또는 박멸을 실행; (v) 템플릿 및/또는 마스터 템플릿의 스위칭, 리포멧팅(reformatting), 삭제, 복사, 리셋, 리부팅 및 설명된 다른 동작의 수행 및 제어 ; (vi) "분리된(isolated) 범용(global) 태스크바아(taskbar)" 또는 동등한 사용자 접근가능 사용자 인터랙션(interaction) 툴의 생성 및 디스플레이(대안적으로 이 태스크바아 또는 툴은 데스크탑 및 인터페이스 계산 환경에 의해 발생될 수 있음). 이들 또는 다른 실시예는 또한 선택적으로 하나 또는 그 이상의 다음 기능을 제공할 수 있다: (vii) "오픈" 대화 스크린; (viii) "저장(save)" 대화 스크린; (ix) 네트워크 통신(예를들어, "네트워크" 동작에 대한 설명을 참조할 것)의 스위칭 수행; (x) 통신 환경으로부터 보안 신호를 수신; (xi) 통신 환경이 생성되는 순서(order) 및/또는 현재 통신 환경 순서 또는 우선순위를 추적; (xii) 상이한 계산 환경으로 다른 입력/출력 또는 주변 장치의 스위칭을 수행; (xiv) 이메일 액세스 및 처리를 조정(coordinate); 및/또는 이들 기능들의 다른 조합.In some but not all of the inventions, the CSCE operating system or application program (or a combination of the two) serves to control or organize (part or all) the functions of the following partial list of parts: (i) data Storage device (DSD) connection switching; (ii) sending instructions to start a computer program application to a computing environment with an acknowledgment of an optional instruction and / or completion of the commanded operation (or a hardwired operation, if necessary); (iii) track the coordinates of clickable windows and / or code; (iv) perform repair and detection, removal, and / or eradication of viruses or other malicious code; (v) performing and controlling the switching, reformatting, deleting, copying, resetting, rebooting and other operations described in the template and / or master template; (vi) creation and display of an "isolated global taskbar" or equivalent user accessible user interaction tool (alternatively, this task bar or tool may be May be caused). These or other embodiments may also optionally provide one or more of the following functions: (vii) an "open" dialog screen; (viii) a "save" dialog screen; (ix) performing switching of network communications (eg, see description of “network” operations); (x) receive a security signal from the communication environment; (xi) tracking the order in which the communication environment is created and / or the current communication environment order or priority; (xii) perform switching of other input / outputs or peripherals to different computing environments; (xiv) coordinate email access and processing; And / or other combination of these functions.

본 발명의 일 실시예에서, CSCE는 다양한 컴퓨터 환경에서의 처리 활동과 관련된 비디오 신호의 제어, 조정, 및/또는 처리(CSCE 자체에서의 처리 활동을 포함)에 대한 책임을 또한 갖거나, 분리 계산 환경 또는 비디오 처리 유닛 또는 로직 회로 또는 다른 수단이 이러한 목적으로 사용될 수 있다. 분리 비디오 프로세서 또는 제어기가 사용되는 경우에, CSCE는 다른 시스템 구성요소와 그의 동작을 조정하 고 편성하는 책임을 일반적으로 가지나, 일부 실시예에서, 비디오 프로세서 또는 제어기는 CSCE 또는 다른 시스템이 제어에 참여할 수 있다.In one embodiment of the invention, the CSCE is also responsible for the control, adjustment, and / or processing (including processing activities in the CSCE itself), or separate computations, of video signals associated with processing activities in various computer environments. Environmental or video processing units or logic circuits or other means can be used for this purpose. Where a separate video processor or controller is used, the CSCE generally has the responsibility of coordinating and organizing its operation with other system components, but in some embodiments, the video processor or controller is responsible for the CSCE or other system to participate in control. Can be.

본 상세한 설명을 참조하여 이해되는 바와 같이 제어 계산 환경으로부터 사용자 계산 환경을 분리하는 것이 제공되나, 사용자 인터페이스, 제어 및 스위칭, 보호 저장 장치, 비디오 프로세서 및 분리된 계산 환경으로서 기지의 클린 데이타 또는 컴퓨터 프로그램을 동작시키는 다른 동작 및 기능에 대한 설명은 다소 인위적이며 주로 설명을 위한 목적으로 사용되었다. 본 발명의 실시예는 이러한 제어 기능들이 결합되는 실시예와 다양한 비-사용자(non-user) 데이타 제어 또는 처리 환경의 분리를 제공한다는 점이 주지되어야 한다. 일부 조합들(combinations)이 예를들어 구체적으로 설명되었으나, 상이한 제어 또는 관리 기능들 및 동작들의 임의의 다른 결합이 본 발명의 다른 원리들과 일관되도록 지지될 수 있다는 점이 이해되어야 한다.Separating the user computing environment from the control computing environment as understood with reference to this detailed description is provided, but known clean data or computer programs as user interface, control and switching, protected storage, video processor and separate computing environment. The descriptions of the different operations and functions that operate the system are rather artificial and are used primarily for illustrative purposes. It should be noted that embodiments of the present invention provide for the separation of various non-user data control or processing environments from the embodiment in which these control functions are combined. While some combinations have been described in detail by way of example, it should be understood that any other combination of different control or management functions and operations may be supported consistent with the other principles of the present invention.

상이한 레벨 또는 정도의 분리(isolation)이 특정 또는세트의 처리 또는 계산 환경 내에서 상이한 시간 또는 상이한 계산 또는 처리 환경에 대해 요구되거나 허용된다는 점이 또한 이해되어야 한다. 예를들어, 바이러스 또는 해커(hacker) 코드가 이러한 코드를 실행할 수 있는 프로세서 또는 코드에 노출되는 계산 환경에서 미지의 파일 또는 데이타 세트가 오픈되고 처리되어야 하는 상황에서, 파일 또는 데이타 세트와 "외부 세계" 사이를 분리하는 것은 절대적이며 사용자 분리 계산 환경 내에 국한된다. 이러한 절대적 분리는 특정 사용자 계산 환경과 다른 사용자 계산 환경 및 제어 환경 사이에 존재한다.It should also be understood that different levels or degrees of isolation are required or allowed for different times or different computational or processing environments within a particular or set of processing or computing environments. For example, an unknown file or data set must be opened and processed in a computing environment in which a virus or hacker code is exposed to a processor or code capable of executing such code. "Separation between them is absolute and confined within the user-separated computing environment. This absolute separation exists between one user computing environment and another.

다른 상황에서, 분리의 정도 또는 레벨은 어떠한 해악(harm)도 존재치 않거나, 컴퓨터 또는 사용자에 설정된 허용된 정도의 해악이 허용될 수 있도록 제한된다. 이것은 일부 사용자 또는 관리자가 무시(override)되고 보다 허용적인 시스템의 사용을 허용하는 어떠한 정책 또는 규칙이 설정될 수 있음을 나타낸다. 예를들어, 계산 시스템이 현재의 안티-바이러스 소프트웨어, 방화벽, 및 기업 정보통신(IT) 부서에서 제공된 다른 보호를 갖는 인트라넷 상의 기업 계산 환경 내에서 정상적으로 사용되는 경우에, 이것은 이미 제공된 필터링(filtering)으로 인해 특별한 이메일 처리를 금지하는 것을 허용할 것이다. 다른 실시예에서는, 네트워크 또는 계산 환경이 일반적으로 신뢰될 수 있는 경우에 모든 분리가 무시될 수 있을 것이다. 이러한 허용가능 무시(override)가 모든 실시예에서 참조되는 것은 아니나, 이것은 본 발명의 구조, 시스템 및 방법에 의해 허용가능한 유연성(flexibility)을 보여준다. 따라서, 상이한 레벨 또는 정도의 분리가 제공될 수 있고, 본 발명이 일부 정도의 넌-분리(non-isolation) 또는 무시를 허용치 않는 구조, 시스템, 방법 또는 절차에 국한되는 것으로 이해되어서는 안 된다. In other situations, the degree or level of separation is limited so that no harm exists, or an acceptable degree of harm set in the computer or user can be tolerated. This indicates that some policies or rules can be set that allow some users or administrators to override and allow the use of more permissive systems. For example, if a computing system is normally used in an enterprise computing environment on an intranet with current anti-virus software, firewalls, and other protection provided by the enterprise information and communications (IT) department, this may already be provided. Will allow you to prohibit special email processing. In other embodiments, all separations may be ignored if the network or computing environment is generally trusted. While this allowable override is not referenced in all embodiments, this demonstrates the flexibility that is acceptable by the structures, systems and methods of the present invention. Thus, different levels or degrees of separation may be provided and the present invention should not be construed as limited to structures, systems, methods or procedures that do not allow some degree of non-isolation or neglect.

상이한 계산 환경으로부터의 처리 비디오(디지탈 또는 아날로그)에 대하여 행해지는 동작들은 예로서 합병(merge) 또는 그렇지 않은 경우에 모니터 또는 디스플레이 장치 상에서 디스플레이하기 위해서 수개의 계산 환경(예를들어, 신호(2187-1, …, 2187-5, …, 2187-N)으로부터의 출력을 결합하거나 포맷화하는 것이 포함되나 이에 국한되는 것은 아니다. 임의의 다양한 초기 또는 디폴트(default) 조건들이 실행될 수 있으나, 본 발명의 일 실시예에서, 부팅상의 디폴트 세팅은 계 산 환경 비디오 신호를 차단하거나 턴오프(turn off)시키며 이는 일부 시스템 또는 사용자 개시 활동이 명령되기까지 비할당된(unallocated) 임의의 계산 환경에 어떠한 활동도 존재해서는 안 되기 때문이다. 대안으로서, CSCE(또는 다른 엔티티(entity))는 비디오 신호를 턴 온/오프하거나 허용/차단한다.Operations performed on processing video (digital or analog) from different computational environments are, for example, merged or otherwise rendered to several computational environments (e.g., signals 2187- for display on a monitor or display device). Combining, but not limited to, the output from 1, ..., 2187-5, ..., 2187-N) Any of various initial or default conditions may be implemented, but In one embodiment, the default setting on booting blocks or turns off the computing environment video signal, which causes any activity to be unallocated until some system or user-initiated activity is commanded. Alternatively, the CSCE (or other entity) turns on / off or allows the video signal. / Block.

일부 실시예에서, 계산 환경으로부터의 비디오 출력의 "처리"은 예를들어 단일 모니터 상에 "계층화(layering)" 효과를 제공하도록 달성된다. 예를들어, 가장 최근의 활동적인 계산 환경은 "탑(top)" (또는 "프론트(front)") 계층으로 항상 이동되거나 그렇지않은 경우에 미리 결정된 규칙 또는 정책에 따라 처리될 수 있다. CSCE는 이러한 프로세스에 대하여 직접 책임을 갖지 않는 경우에 이러한 프로세스를 제어하고 편성하는데 기여한다. 예를들어, CSCE는 어떤 "계층"을 "프론트"에 놓을지와 어떻게 다양한 계산 환경으로부터의 비디오 출력을 합병할 것인지를 결정하는 것을 돕기 위해 비디오 제어기에 하나 이상의 명령을 전송할 수 있다. CSCE가 이러한 정보를 갖고 있으며, 이는 마우스 클릭과 같은 다른 목적을 위하여, 계층, 활성 계산 환경, 비할당되거나 비활성인 계산 환경, 윈도우 위치, 마우스 또는 포인팅 장치 커소 좌표 및 위치와 스위칭에 속하는 정보의 데이타베이스를 유지하기 때문이다.In some embodiments, "processing" of video output from the computing environment is achieved to provide a "layering" effect, for example, on a single monitor. For example, the most recent active computing environment may be moved to the "top" (or "front") layer at all times or otherwise processed according to predetermined rules or policies. CSCE contributes to controlling and organizing these processes when they are not directly responsible for them. For example, the CSCE may send one or more commands to the video controller to help determine which "layer" to put on the "front" and how to merge video output from various computing environments. The CSCE has this information, which means that for other purposes, such as mouse clicks, the hierarchy, active computing environment, unassigned or inactive computing environment, window position, mouse or pointing device cursor coordinates, and data of information pertaining to position and switching This is because the base is maintained.

비디오 그래픽스(graphics) 카드 또는 비디오 서브시스템이 연속적으로 ("블랙(black)" 또는 빈 화면에 대한 것이라 하더라도) 신호를 전송하는 실시예와 같은 일부 실시예에서, 비디오 신호는 비디오 제어기에서 턴 "온/오프" 또는 "허용/차단"될 수 있다. 대안으로서, 이러한 계산 환경이 비할당되거나 비활성인 경우에, CSCE 또는 비디오 제어기는 특정 계산 환경으로부터의 이러한 신호를 단순히 "무시(ignore)"하도록 지시될 수 있다. 즉, 계산 환경 비디오 카드는 (분리된 카드 또는 칩이거나 또는 프로세서 또는 다른 로직 회로와 통합되었는지와 관계없이) 선택적으로 비디오 신호를 항상 "펌핑 아웃(pumping out)"할 수 있거나, 상기 비디오 카드가 활성 처리 환경에 있는 경우에 CSCE 또는 다른 비디오 제어기가 이러한 비디오 신호를 출력하도록 할 수 있다. 이것은 전력 소모와 열 발생을 감소시키는 이점이 있고, 시스템과 시스템 구성요소의 수명을 증가시키는 효과를 갖는다. CSCE는 또한 계산 환경으로부터의 어떤 비디오 입력을 처리할 지와 각 비디오 입력에 대하여 어떤 정보가 이용될 지와 어떤 정보가 무시될 지를 비디오 제어기 또는 프로세서(존재하는 경우)에게 알리기 위해서 비디오 제어기 또는 프로세서에 신호를 전송할 수 있다. 예를들어, 각 계산 환경에 대한 데스크탑(desktop)의 일부가 중복적(duplicative)이거나 계산 환경에서 실제 활동을 나타내지 못하는 경우에 억제될 수 있다.In some embodiments, such as embodiments in which a video graphics card or video subsystem continuously transmits a signal (even if it is for "black" or blank screen), the video signal is turned "on" in the video controller. ON / OFF "or" Allow / Block ". Alternatively, if such a computing environment is unassigned or inactive, the CSCE or video controller may be directed to simply "ignore" this signal from the particular computing environment. That is, the computing environment video card can optionally always "pump out" the video signal (whether it is a separate card or chip, or integrated with a processor or other logic circuit), or the video card is active. If in a processing environment, the CSCE or other video controller may be able to output such a video signal. This has the advantage of reducing power consumption and heat generation, and has the effect of increasing the life of the system and system components. The CSCE also tells the video controller or processor to inform the video controller or processor (if any) which video input from the computing environment to process, what information is used for each video input, and what information is to be ignored. You can send a signal. For example, part of the desktop for each computing environment may be suppressed if it is redundant or does not represent actual activity in the computing environment.

분리된 처리 유닛 계산 환경Separate processing unit calculation environment

시스템(2100)은 또한 하나 또는 복수의 다른 비할당 분리 처리 유닛(IPU) 계산 환경(IPUCE), 또는 각각 CPU(2160, 2170), STP(2162,2172) 및 TDP(2163, 2173)을 갖는 저장 장치(2161, 2171), 인터페이스(2169, 2179), 및 저장 장치와 CPU 사이에서 결합 또는 결합 해제(허용 또는 차단 통신)하기 위한 스위치(2164, 2165, 2174, 2175)를 포함하는, 도9의 실시예의 CE(2108-4) 및 CE(2108-5)와 같은 쉘 (shell)을 포함한다.System 2100 also stores one or a plurality of other Unassigned Separate Processing Units (IPU) Computing Environments (IPUCEs), or CPUs 2160 and 2170, STPs 2162 and 2172 and TDPs 2163 and 2173, respectively. 9, including devices 2161, 2171, interfaces 2169, 2179, and switches 2164, 2165, 2174, 2175 for engaging or disengaging (permit or disconnect communication) between the storage device and the CPU. Embodiments include shells such as CE 2108-4 and CE 2108-5.

UICE(2108-1)을 통한 CSCE(2108-2)의 제어하에 운영체제, 애플리케이션 프로그램, 및 사용자 데이타를 지지하고 상호동작하기 위한, 운영체제, 애플리케이션 프로그램, 사용자 데이타 파일, 및 계산 하드웨어의 이러한 조합은 사용자 데이타와 선택된 마이크로소프트 워드 프로그램의 보호되고 분리된 처리를 가능하게 한다.These combinations of operating systems, application programs, user data files, and computing hardware for supporting and interacting with the operating system, application programs, and user data under the control of the CSCE 2108-2 through the UICE 2108-1 are user Enables protected and separate processing of data and selected Microsoft Word programs.

UICE가 신호(2108)를 통해 CSCE(2108-2)에 임의의 필요한 데이타를 갖는 정보를 전송하는 것이 동작가능하다. CSCE는 시스템(2100) 자원의 현재 할당과 시스템 구성에 대한 다른 규칙 또는 정책을 고려하여 이들 신호들을 수신하고, 계산 환경(2108-4)과 같은 적절한 계산 환경을 선택한다. 본 발명의 다른 실시예는, 컴퓨터 제조시에 물리적으로 연결되지 않고 컴퓨터 시스템(2100) 하드웨어 내에 근접하여 위치하지 않는 경우에도, 계산 엘리먼트로서 어셈블(assemble)될 수 있는 (CPU 및 저장 장치와 같은) 분리 엘리먼트의 동적 할당을 제공한다. It is operable for the UICE to send information with any necessary data to the CSCE 2108-2 via signal 2108. The CSCE receives these signals in consideration of the current allocation of system 2100 resources and other rules or policies for system configuration, and selects an appropriate computing environment, such as computing environment 2108-4. Another embodiment of the present invention may be assembled as a computing element (such as a CPU and storage device) even if the computer is not physically connected at the time of computer manufacture and is not located in close proximity within the computer system 2100 hardware. Provides dynamic allocation of separate elements.

계산 환경(2108-4)이 CSCE(2108-2)에 의해, 보다 상세히는 시스템 스위치 제어기(SSC)(2138) 내의 규칙 또는 정책 또는 알고리즘에 의해 선택되면, SSC는 마이크로소프트 윈도우즈 2000 운영체제 하에서 마이크로소프트 워드 처리 스프로그램을 식별된 사용자 문서 파일로 실행하도록 할당되었다고 통신하기 위하여 CE(2108-4)에게 하나 이상의 신호들(2186-4)을 전송한다. CE(2108-4)는, 통신 프로토콜이 단일 로직 전압 레벨과 같이 단순한 경우라도, 일부 핸드쉐이크 또는 다른 통신 프로토콜 하에서 통신을 수신하였음을 선택적으로 확인응답(acknowledge)한다. 따라 서, 따라서, 신호(들)(2186-4)은 일방향적(unidirectional)이거나 양방향적(bi-directional)일 수 있다. SSC(2138)는 또한 하나 이상의 스위치 제어 신호들(2181)을 스위치(2250)에 통신한다. 예를들어, 스위치 제어 신호(2181-1, 2182-2, 2182-3)는 목적하는 저장 장치 액세스를 허용하기 위하여 하나 이상의 스위치(SW1, SW2, SW3)를 구성한다. 이들 동일한 스위치는 선택적으로 SSC로부터의 통신을 확인응답하는 이점이 있고, 의도하는 협력을 위하여 스위치들이 적절한 구성(예를들어, 열림 또는 폐쇄, 또는 허용/차단)에 있다는 것을 다시 지시하는 상태(status)를 제공할 수 있다. 유사하게, 스위치(2250)는 저장 장치(2161)의 STP(2162) 및/또는 TDP(2162)와 같은 타겟 목적지에 대한 데이타 전송 준비 형태 통신을 전송할 수 있으나, 이들은 바람직하게는 선택적으로 스위치(2250)에 대한 데이타 수신 준비 형태 상태(status) 신호를 다시 지시할 수 있다.If the computing environment 2108-4 is selected by the CSCE 2108-2, more specifically by the rules or policies or algorithms in the system switch controller (SSC) 2138, the SSC is a Microsoft computer under the Microsoft Windows 2000 operating system. Send one or more signals 2186-4 to CE 2108-4 to communicate that the word processing program has been assigned to execute with the identified user document file. The CE 2108-4 selectively acknowledges that communication has been received under some handshake or other communication protocol, even if the communication protocol is as simple as a single logic voltage level. Thus, signal (s) 2186-4 may be unidirectional or bi-directional. SSC 2138 also communicates one or more switch control signals 2181 to switch 2250. For example, switch control signals 2181-1, 2182-2, and 2182-3 constitute one or more switches SW1, SW2, SW3 to allow for desired storage device access. These same switches optionally have the advantage of acknowledging communication from the SSC, and again indicating that the switches are in the proper configuration (eg open or closed, or allow / block) for the intended cooperation. ) Can be provided. Similarly, switch 2250 may send data transfer ready communication to a target destination, such as STP 2162 and / or TDP 2162 of storage device 2161, but they are preferably selectively switched 2250. The data reception ready status signal can be indicated again.

구체적으로 이 워드 처리 실시예에서, SW1(2251)는 모든 또는 선택된 부분의, 마이크로소프트 윈도우즈 2000과 적어도 마이크로소프트 워드 애플리케이션 프로그램을 포함하는 마스터 템플릿의 통신을 허용한다. 일부 실시예에서, 대안적으로, 운영체제 및 애플리케이션 프로그램이 분리된 소스(source)로부터 분리되어 제공될 수 있음이 주지된다. 다른 실시예에서, 운영체제는 계산 환경 내에 제공되어서 STP(2162) 상에, 결합된 ROM 내에, 또는 다른 방식으로 저장되어 각각의 시간에 통신될 필요가 없을 수 있다. 그러나, SPT가 사용 후에 제거되지 않은 경우에 STP가 악성 코드에 의해 쓰여진 것이었다면 오염의 가능성이 존재하나 판독 전용 메모리 또는 ROM으로부터 검색되었다면 이러한 문제점이 존재하지 않을 것이란 점이 주 지된다.Specifically in this word processing embodiment, SW1 2251 allows communication of all or selected portions of a master template, including at least a Microsoft Word application program, with Microsoft Windows 2000. In some embodiments, it is noted that alternatively, the operating system and application programs may be provided separately from separate sources. In other embodiments, the operating system may be provided within a computing environment to be stored on STP 2162, in a combined ROM, or in other ways, and not need to be communicated at each time. However, it is noted that if the STP was written by malicious code if the SPT was not removed after use, there is a possibility of contamination, but if it was retrieved from read-only memory or ROM, then this problem would not exist.

(제공된 통신 경로가 다중 액세스 경로를 지지하는데 충분한 경우에) 병렬로 또는 (통신 경로(2187)가 다중 액세스 경로를 지지하는데 충분치 않은 경우에) 순차적으로, STP(2162)가 필요한 컴퓨터 프로그램 코드를 수신하자마자 SW1(2251)는 MTPS(2142)를 STP(2162)에 연결하도록 구성된다. 유사하게, SW2(2252)는 UDPS(2143)으로부터 식별된 사용자 문서 파일이 TDP(2163)에 복사될 수 있도록 통신 경로를 제공하도록 구성된다. 복사 동작 도중에 액세스 가능한 하드웨어/펌웨어/소프트웨어가 임의의 악성 코드의 실행을 허용하는데 충분치 않다는 점이 상기된다. 예를들어, 소스로부터의 비트를 목적지에 복사하도록 적용된 하드웨어 전용 복사 회로는 바이러스, 해커, 또는 다른 악성 코드에 의해 오염될 수 없고 소스로부터 비트를 단지 포착(또는 읽기)하고 목적지에 복사(또는 쓰기)하도록 할 수 있다. 소스와 목적지 사이의 버퍼는 선택적으로 필터 또는 리미터(limiter)로서 사용될 수 있다. 소프트웨어 및/또는 프로그램가능 하드웨어가 또한 복사 동작을 위해 사용될 수 있으나, 이러한 복사 수단의 능력이 시스템 또는 컴퓨터 환경 내성(immunity)을 손상시키는 의도치 않은 수정(modification)의 오염으로부터 보호되는 이점이 있다. 바람직하게는, 복사 동작은 다른 해석(interpretation) 없이 이진 비트 또는 비트의 세트만을 복사하는 것이다. 그러나, 본 발명은 이러한 조건에 의해 국한될 필요는 없으며 다른 보호 조치가 악성 코드의 가능한 실행을 방지하기 위해서 이용될 수 있다.STP 2162 receives the necessary computer program code in parallel (if the provided communication path is sufficient to support multiple access paths) or sequentially (if communication path 2187 is not sufficient to support multiple access paths). As soon as SW1 2251 is configured to connect MTPS 2142 to STP 2162. Similarly, SW2 2252 is configured to provide a communication path so that user document files identified from UDPS 2143 can be copied to TDP 2163. It is recalled that the accessible hardware / firmware / software is not sufficient to allow execution of any malicious code during the copy operation. For example, a hardware-only copy circuit adapted to copy bits from a source to a destination cannot be contaminated by viruses, hackers, or other malicious code, but simply captures (or reads) bits from the source and copies (or writes) to the destination. Can be done. The buffer between the source and the destination can optionally be used as a filter or limiter. Software and / or programmable hardware may also be used for the copying operation, but the advantage of this copying means is that it is protected from contamination of unintended modifications that compromise the system or computer environment immunity. Preferably, the copy operation is to copy only a binary bit or a set of bits without other interpretation. However, the present invention need not be limited to these conditions and other protective measures can be used to prevent possible execution of malicious code.

본 발명의 일 실시예에서, 데이타 복사 프로세스는 복사된 데이타가 실행될 수 없어서 데이타 저장 장치 장치 상의 데이타가 악성 코드에 의해 손상될 수 없도록 "단순(dumb)"한 것이거나 제한적인 것일 수 있다. 예를들어, 데이타를 이동시키거나 복사하기 위해서, 데이타는 인코딩되거나, 제한된 기능성(functionality)을 갖는 ASIC이 이용되거나, 실행될 비트 시퀀스의 일부 실행가능 코드를 갖는 데이타를 허용할 수 없도록 하는,직접 메모리 전송 또는 데이타를 이동시키거나 복사하는 다른 방법이 이용될 수 있다. 선택적으로, 복사는 분리된 작업 시스템과 분리되거나 보호된 저장 장치 시스템에 대하여 주소지정되거나 액세스를 갖는 제어 시스템에 의해 편성될 수 있다.In one embodiment of the invention, the data copying process may be "dumb" or restrictive such that the copied data cannot be executed so that the data on the data storage device cannot be corrupted by malicious code. For example, in order to move or copy data, the data may be encoded, an ASIC with limited functionality may be used, or it may not allow data with some executable code of the bit sequence to be executed. Other methods of transferring or moving or copying data may be used. Optionally, the copy may be organized by a control system that is addressed or has access to a separate working system and a separate or protected storage system.

저장 장치 시스템에서 오픈하기 위해 파일을 선택하는 것은 프로세스를 개시하여 이에 의해 파일이 저장 장치 시스템 또는 (UDPS와 같은) 소스로부터 (IPUCE(2108-4)의 STP(2166)와 같은) 작업 계산 환경에 파일이 복사될 수 있고, 스위치(2250)를 통하여 UDPS(2143)과 연결을 중단한 후에, 데이타 또는 파일이 오픈되거나 CPU(2160)에 노출되는 것이 허용될 수 있다. 작업 계산 환경에 파일을 저장함에 의해 프로세스가 개시되고 이에 의해 상기 파일이 저장 장치 시스템에 복사된다. 작업 계산 환경에 파일을 퀴팅(quitting)함에 의해 프로세스가 개시되고 이에 의해 새롭거나 업데이트된 파일 또는 데이타 세트가 (UDPS(2143)과 같은)목적지 저장 장치 시스템에 복사되거나 쓰여지고 (TDP(2161))과 같은) 소스 저장 장치 시스템에서 제거(바람직하게는 물리적으로 지워짐)될 수 있다. 용어"복사(copy)" 또는 "복사들(copies)" 또는 "복사(copying)"은 최광의의 의미로 사용되며, 알고리즘, 스냅샷(snapshot), 압축된 데이타, 비트-바이-비트, 코딩, 인코딩 등을 포함할 수 있으나 이로 한정되는 것은 아니다.Selecting a file to open on the storage system initiates the process whereby the file is stored in a job accounting environment (such as STP 2166 of IPUCE 2108-4) from the storage system or from a source (such as UDP). The file may be copied, and after breaking the connection with the UDPS 2143 via the switch 2250, the data or file may be allowed to be opened or exposed to the CPU 2160. The process is initiated by storing a file in the job calculation environment whereby the file is copied to the storage system. The process is initiated by quitting a file into the job accounting environment, whereby a new or updated file or data set is copied or written to the destination storage system (such as UDP 2143) and (TDP 2161). Such as may be removed (preferably physically erased) from the source storage system. The term "copy" or "copies" or "copying" is used in the broadest sense and refers to algorithms, snapshots, compressed data, bit-by-bit, coding , Encoding, and the like, but are not limited thereto.

분리된 계산 환경은 또한 통신 플래그(flag) 또는 분리된 계산 환경(또는 ICE 내의 일부 구성요소)의 상태(status)와 상태(state)를 식별하는 다른 정보 또는 지시자(2191)를 제어 및 스위칭 계산 환경(2108-2)에 전송하거나 그렇지 않으면 통신할 수 있다. 이러한 상태(status)와 상태(state)는 하나 또는 조합의 동작 준비 상태(status), 처리 완료 상태(status), 파일 복사 또는 저장 준비 상태(status), 리셋 상태(status), 및/또는 제어 환경이 필요하거나 이용할 수 있는 다른 데이타 또는 정보를 포함할 수 있다. The separate computing environment also controls and switches the computing flag or other information or indicator 2191 that identifies the status and state of the separate computing environment (or some component within the ICE). (2108-2) or otherwise communicate. These states and states can be one or a combination of operational ready status, processing ready status, file copy or save ready status, reset status, and / or control environment. This may include other data or information needed or available.

분리된 계산 환경은 또한 윈도우 x-y 좌표와 선택적으로 제어 환경(2108-2) 및/또는 데스크탑 및 사용자 인터페이스 계산 환경(2108-1)(또는 CSCE에 의해 제어되는 분리 비디오 그래픽스 프로세서 또는 비디오 디스플레이 유닛)에 의해 사용되기 위한 윈도우 차원(2192)을 상이한 계산 환경 윈도우를 결합하거나 합병하기 위해서 단일 디스플레이 장치에(이러한 단일 디스플레이 장치가 바람직한 경우에) 전송하거나 그렇지 않으면 통신할 수 있다. 통신 라인 또는 링크(2191, 2192)는 또한 단일 라인 또는 링크 상에서 공유될 수 있다. 또한, 본 명세서의 다른 부분에서 설명된 다양한 특성(trait)이 상기 통신 라인 또는 링크 상에서 통신될 수 있다. The separate computing environment may also be stored in the window xy coordinates and optionally in the control environment 2108-2 and / or the desktop and user interface computing environment 2108-1 (or separate video graphics processor or video display unit controlled by CSCE). The window dimension 2192 for use by may be transmitted or otherwise communicated to a single display device (if such a single display device is desired) to combine or merge different computing environment windows. Communication lines or links 2191 and 2192 may also be shared on a single line or link. In addition, various traits described elsewhere herein may be communicated over the communication line or link.

이러한 통신 경로와 다른 통신 경로, 통신 링크, 또는 단일 라인이 본 명세서의 다른 부분에서 설명한 바와 같이, 하나의 계산 환경과 다른 계산 계산 환경 사이의 감염 가능성을 더욱 줄이기 위해서, 형태, 시퀀스, 숫자, 또는 정보의 볼 륨, 데이타, 이진 비트 등을 제한하는 필터 또는 리미터와 고정될 수 있다. 이들 필터와 리미터는 본 발명의 다른 실시예에서 보다 상세히 설명되어 있다.Such communication paths and other communication paths, communication links, or single lines, as described elsewhere herein, may further reduce the likelihood of infection between one computational environment and another computational environment, in the form, sequence, number, or Can be fixed with filters or limiters that restrict the volume of information, data, binary bits, and so on. These filters and limiters are described in more detail in other embodiments of the present invention.

운영체제, 애플리케이션 프로그램, 및 사용자 데이타의 적절한 조합이 CE(2108-4)에 존재하면, 워드 처리 동작이 개시될 수 있다. 파일이 워드 처리 프로그램이 존재할 때까지 TDP(2163) 내에 저장되거나, 적절하게 구성된 스위치 SW3(2253)에 의해 UDPS(2143)에 대한 쓰기 동작을 갖는 중간 저장을 이용함에 의해 저장될 수 있다. If an appropriate combination of operating system, application program, and user data is present in the CE 2108-4, the word processing operation can be initiated. The file may be stored in the TDP 2163 until there is a word processing program, or by using an intermediate store with a write operation to the UDPS 2143 by a suitably configured switch SW3 2253.

임의의 읽기 또는 쓰기 동작이 MTDS(2142) 또는 UDPS(2143)과 (STP(2164) 또는 TDP(2163)과 같은) 저장 장치 사이에 수행되는 경우에, CPU(2160)가 저장 장치로부터 결합 해제되거나 차단되어, MTDS(2142) 또는 UDPS(2143)가 악성 코드가 실행되어 보호 저장 장치 MTDS(2142) 또는 UDPS(2143)을 오염시키는 것을 허용하는 방식으로 CPU(2160)에 노출되지 않도록 한다는 점에서 이점이 있다.When any read or write operation is performed between MTDS 2142 or UDPS 2143 and storage (such as STP 2164 or TDP 2163), CPU 2160 is uncoupled from storage or Advantages in that it prevents the MTDS 2142 or UDPS 2143 from being exposed to the CPU 2160 in a manner that allows malicious code to execute and contaminate the protected storage MTDS 2142 or UDPS 2143. There is this.

워드 처리가 완료되고 새롭고 편집된 파일이 다시 보호 저장 장치에 쓰여지면, 단일 또는 상태 변화 또는 "플래그" 또는 다른 지시자와, CSCE로부터의 다음 명령, STP(2162) 및 TDP(2163)의 내용이 제거되고 지워진다. 이러한 제거 또는 삭제는 저장 장치 미디어를 덮어쓰기하거나 매스터 부트 기록 또는 파티션(partition) 테이블을 포맷화하는 것과 같은 실제 삭제이어서, 저장된 마지막 데이타 세트에 존재할 수 있는 임의의 악성 코드가 다른 파일 또는 데이타 세트에 확산되지 않도록 하는 것이 좋다. 이것은 실제 제거 대신에 제거된 파일에 대한 참조를 제거하도록 디렉토리를 단지 업데이트하는 가장 통상적인 시스템과는 상이한 것 이다. 사용된 저장 장치 스페이스와 바람직하게는 전체 액세스가능 저장 장치 스페이스를 지우는 바람직함에 의해 하드 디스크 드라이브 저장 장치와 같은 느린 전기-기계적 저장 장치보다 빠른 고체 상태 메모리가 보다 선호되게 된다. 이것은 또한 계산 환경 고려에서 액세스 가능한 저장 장치 스페이스의 양을 감소시키게 한다. 또한 다양한 크기의 일부 실시예에서 저장 장치 스페이스를 동적으로 할당하고, 프로세스가 보다 많은 메모리에 대한 필요를 발생시킴에 따라 액세스가능한 메모리를 증가시키고, 고체 상태 메모리와 대형이며 가격이 저렴한 하드 디스크 드라이브 저장 장치 양자를 구성하는 능력을 가능케 한다. When word processing is complete and a new, edited file is written back to the protected storage device, the contents of a single or state change or "flag" or other indicator, the next command from the CSCE, STP 2162 and TDP 2163 are removed. And are erased. This removal or deletion is the actual deletion, such as overwriting the storage media or formatting the master boot record or partition table, so that any malicious code that may exist in the last data set stored on another file or data set. It is good to prevent it from spreading This is different from the most conventional system, which simply updates the directory to remove references to the removed files instead of the actual removal. The desirability of erasing used storage space and preferably entire accessible storage space makes fast solid state memory preferred over slow electro-mechanical storage devices such as hard disk drive storage. This also allows to reduce the amount of storage space accessible in the computational environment considerations. It also dynamically allocates storage space in some embodiments of varying sizes, increases accessible memory as processes create a need for more memory, and stores solid state memory and large, inexpensive hard disk drives. It enables the ability to configure both devices.

이러한 관점에 대하여 제공된 본 발명의 고려는 바이러스에 의해 오염된 보호 저장 장치 UDPS(2143)에 존재하였던 사용자 데이타가 바이러스와 함께 CE(2108-4)에 이동되고 다음, CPU(2160)와 계산 환경 내에서 바이러스 코드의 실행을 지지할 수 있는 운영체제에 노출되는 상황을 드러낼 것이다. Consideration of the present invention provided with respect to this aspect is that user data that was present in the protected storage UDPS 2143 contaminated by virus is transferred to the CE 2108-4 together with the virus and then in the CPU 2160 and the computing environment. Will expose you to operating systems that can support the execution of virus code.

OF바이러스가 CPU 및 운영체제에 노출되었으나 바이러스가 만족스럽지 않은실행 날짜 조건을 갖는 경우와 같은 어떠한 이유에 의해 바이러스가 실행되지 않는 다면, 바이러스는 바이러스를 갖는 파일과 함께 또는 보호 저장 장치 UDPS(2143)에 대한 새롭고 독립적인 파일로서 복귀될 것이다. 이러한 경우에 특정 계산 환경(2108-4) 및 시스템(2100) 둘다는 바이러스(또는 다른 악성코드)에 의한 노출에 전체적으로 손상되지 않는다.If the virus is not running for some reason, such as when the OF virus has been exposed to the CPU and operating system but the virus has an unsatisfactory run date condition, the virus may be stored in the protected storage device UDPS 2143 or together with the file with the virus. Will be returned as a new, independent file for the. In this case both the specific computing environment 2108-4 and the system 2100 are not totally compromised by exposure by a virus (or other malware).

다른 한편으로, 만일 바이러스(또는 악성 코드)가 계산 환경(2108-4)내에서 잠시동안 실행되어 CPU, CPU 관련 RAM 또는 다른 메모리, 및/또는 STP(2162) 또는 TDP(2163) 저장장치를 손상 또는 오염시키면, 이의 해로운 효과는 분리된 계산 환경(2108-4)에 제한된다. 바이러스 또는 다른 악성코드가 시스템(2100)의 나머지에서 제거되도록 하고 또한 보호 저장장치 MTPS(2142) 또는 UDPS(2143)내의 데이터 및 시스템(2100)에 영향을 미치지 않도록 아키텍처 및 처리 시스템 및 방법에 경로가 제공되지 않는다. 비록 바이러스로 오염된 파일이 보호 저장장치 MTPS(2142) 또는 UDPS(2143)에 복귀될지라도, 다른 연산 시스템, 응용 프로그램, 또는 다른 데이터 파일들은 PSCE(2108-3)가 데이터에 포함된 임의의 비트 패턴을 실행할 수 있는 프로세서를 포함하지 않기 때문에 오염될 수 없고 "0" 및 "1" 비트들을 가지며 계산 환경내에서 프로그램 의미를 가지지 않는다. 비트들이 공개되는 연산만이 필요한 경우에 복사만을 수행할 수 있는 하드웨어, 소프트웨어 및/또는 펌웨어에 의하여 단순 복사 연산인 것을 다시 상기하라. PSCE와 다른 계산 환경(2108)에서 바이러스가 실행되는 경우에, 바이러스는 파일의 사본을 손상시키거나 또는 왜곡시킬 수 있으며, PSCE의 원 데이터 또는 파일은 손상되지 않은채로 유지된다. 명확하게, 일단 바이러스 또는 다른 악성 코드가 존재하는 것으로 발견되면 바이러스를 치료하거나 또는 제거하는 단계들을 취하고 바이러스로 오염된 버전을 치료된 버전으로 대체하는 것이 바람직할 수 있다. 이러한 바이러스 또는 악성 코드 검출 및/또는 치료 동작은 사실상 파일의 치료된 사본이 보호된 저장장치로 복귀되기전에 파일의 사본에 대한 분리된 계산 환경에서 수행되는 프로세스들중 하나일 수 있다. 기록보다 오히려 버전들로서의 파일들의 저장은 대안적인 저장 옵션이다.On the other hand, if a virus (or malicious code) runs for a while in computing environment 2108-4, it corrupts the CPU, CPU related RAM or other memory, and / or the STP 2162 or TDP 2163 storage device. Or if contaminated, its detrimental effect is limited to a separate computing environment 2108-4. Paths to the architecture and processing systems and methods ensure that viruses or other malware are removed from the rest of system 2100 and do not affect data and system 2100 within protected storage MTPS 2142 or UDPS 2143. Not provided. Although a virus-contaminated file is returned to protected storage MTPS 2142 or UDPS 2143, other computing systems, applications, or other data files may contain any bits that PSCE 2108-3 contains in the data. Since it does not contain a processor capable of executing the pattern, it cannot be contaminated and has "0" and "1" bits and does not have program meaning in the computing environment. Recall again that this is a simple copy operation by hardware, software and / or firmware that can only perform copying if only the operation in which the bits are published is required. If the virus is run in a PSCE and other computing environment 2108, the virus may damage or distort a copy of the file, and the original data or file of the PSCE remains intact. Clearly, once a virus or other malicious code is found to be present, it may be desirable to take steps to treat or remove the virus and replace the virus contaminated version with the cured version. Such virus or malware detection and / or repair operations may in fact be one of the processes performed in a separate computing environment for the copy of the file before the cured copy of the file is returned to the protected storage. Saving files as versions rather than writing is an alternative storage option.

악성 오염 파일들을 안전하게 처리하는 구조적 및 동작적 특징들을 기술할 때, 인간 사용자(2129)에게의 그래픽 또는 디스플레이 스크린 프리젠테이션을 기술하는 것을 본론에서 벗어난다. 설명을 위하여, 컴퓨터 시스템(2100)이 각각의 프로세스가 디스플레이 부시스템의 개별 윈도우에서 디스플레이될 수 있는 윈도우 시스템을 제공한다는 것을 가정한다. 마이크로소프트 윈도우즈, 유닛, 리눅스, 애플 매킨토시 OS, 및 다른 공통 연산 시스템과 같은 연산 시스템들은 공통 디스플레이의 개별 윈도우들의 각 프로세스에 대한 디스플레이를 제공하는 윈도윙 및 구조 및 기술들을 지원한다. 따라서, 각각의 계산 환경은 종래의 멀티-태스킹 윈도우 시스템들와 유사한 윈도우 멀티-태스크 처리 시스템을 제공하기 위하여 비디오 디스플레이 서브시스템(2192)에 의하여 처리되는 디스플레이 스크린 또는 그래픽 출력(2187)을 제공한다. 키보드(2190) 및 마우스(2191) 또는 다른 포인팅 장치와 같은 입력/출력은 활성 프로세스 또는 윈도우에 키보드 버튼 누름들 및 마우스를 할당함으로서 유사하게 제공된다. 사용자(2129) 또는 임의의 환경에서 시스템 그 자체는 선택된 또는 활성 윈도우를 식별하며, 키보드 및 마우스 동작들은 추적되어 선택된 프로세스로 식별된다. 본질적으로, 키보드, 마우스 또는 포인팅 장치 및 디스플레이 프로세스는 UICE 2108-1 및 CSCE 2108-2를 통해 활성 윈도우 또는 다른 식별된 활성 프로세스에 할당된다.When describing the structural and operational features of safely handling malicious contaminated files, it is beyond the scope of the present invention to describe a graphical or display screen presentation to human user 2129. For illustrative purposes, assume that computer system 2100 provides a window system in which each process can be displayed in a separate window of the display subsystem. Computing systems such as Microsoft Windows, Unit, Linux, Apple Macintosh OS, and other common computing systems support the windows and structures and technologies that provide a display for each process of individual windows of a common display. Thus, each computing environment provides a display screen or graphical output 2187 processed by video display subsystem 2192 to provide a window multi-task processing system similar to conventional multi-tasking window systems. Input / output, such as keyboard 2190 and mouse 2191 or other pointing device, are similarly provided by assigning a mouse button and keyboard button presses to an active process or window. In user 2129 or any environment, the system itself identifies the selected or active window, and keyboard and mouse actions are tracked and identified as the selected process. In essence, the keyboard, mouse or pointing device and display process are assigned to the active window or other identified active process via UICE 2108-1 and CSCE 2108-2.

유사한 방식으로, 계산 시스템내의 각각의 다른 장치 또는 주변장치는 플로피-디스크 드라이브, USB 포트들 및 이들 포트들을 통해 접속된 임의의 USB 주변장치들, 모뎀들, 네트워크 인터페이스 회로들 또는 카드들(NIC), 모뎀들, SCSI 인터페이스들 및 장치들, PC 카드 슬롯들 및 인터페이스들 및 이들 인터페이스들을 통 해 접속된 장치들, CD 판독기/기록기들, DVD 판독기들/기록기들, 스캐너들, 프린터들, 오디오 시스템들, 마이크로폰, 스피커들, 직렬 또는 병렬 인터페이스들 및 이들 인터페이스들을 통해 접속된 장치들, 카메라들, 레코더들, 및 제한없이 컴퓨터 또는 정보 장비에 접속될 수 있는 임의의 다른 I/O 또는 주변 장치들 또는 시스템들중 하나 이상을 포함한다. In a similar manner, each other device or peripheral in the computing system may be a floppy-disk drive, USB ports, and any USB peripherals, modems, network interface circuits or cards (NIC) connected through these ports. Modems, SCSI interfaces and devices, PC card slots and interfaces and devices connected through these interfaces, CD readers / writers, DVD readers / writers, scanners, printers, audio systems , Microphones, speakers, serial or parallel interfaces and devices, cameras, recorders, and any other I / O or peripheral devices that can be connected to a computer or information equipment without limitation. Or one or more of the systems.

이러한 진보적 구조들로서 시스템 및 방법이 컴퓨터들, PDA들, 이동 통신 장치들 및 전화들, 셀룰라 전화들, 디지털 카메라들, 비디오 기록 장치들, 네비게이션 및 매핑 시스템들, 자동차 엔진 관리 시스템들, 항공기 네비게이션 및 안내 시스템들과 같이(그러나, 이에 제한되지 않음) 프로세서를 가지는 장치들 및 장비들의 다양한 세트에 적용될 수 있으며 또한 프로세서를 통합하고 바이러스, 스파이웨이, 보트들, 컴퓨터 해커들 및 다른 악성 코드에 취약한 다른 전자 장치들 및 시스템들의 모든 방식에 적용될 수 있다. 완전하게 디버깅되지 않는 컴퓨터 코드의 실행과 연관된 비의도적 문제들은 코드가 테스트되거나 또는 디버그되거나 또는 다른 방식으로 분리된 컴퓨터 환경들중 하나에서 이용되는 경우에 시스템의 나머지에 악영향을 미치는 코드들의 임의의 결함을 방지하는 방식으로 조절될 수 있는 것을 상기하라. 따라서, 가능한 입력 장치들, 출력 장치들, 입력/출력 장치들의 세트는 다수의 및 다양한 세트이며, 종래의 데스크탑 또는 이동 노트북 계산과 연관된 장치들에 제한되지 않는다. 주변장치는 예컨대 본 발명의 원리들에 따라 형성된 정보 시스템에 의하여 제어 또는 모니터링되는 자동차 또는 항공기일 수 있다.As such advanced structures, the system and method include computers, PDAs, mobile communication devices and telephones, cell phones, digital cameras, video recording devices, navigation and mapping systems, automotive engine management systems, aircraft navigation and It can be applied to various sets of devices and devices with a processor, such as, but not limited to, guidance systems, and also integrates the processor and is vulnerable to viruses, spyways, boats, computer hackers and other malware Applicable to all manner of electronic devices and systems. Unintentional problems associated with the execution of computer code that are not fully debugged are any defects in the code that adversely affect the rest of the system when the code is tested, debugged, or otherwise used in one of the separate computer environments. Recall that it can be adjusted in a way that prevents this. Thus, the set of possible input devices, output devices, input / output devices is a large and diverse set, and is not limited to devices associated with conventional desktop or mobile notebook computing. The peripheral device may for example be a motor vehicle or an aircraft controlled or monitored by an information system formed in accordance with the principles of the invention.

비록 이들 다른 주변장치들이 UICE 2108-1의 데스크탑 환경에서 인식될 수 있을지라도, 이들 주변장치들(키보드 및 마우스외에)을 실제로 액세스하는 프로세스는 주변장치에 대한 액세스를 필요로하는 다른 분리 처리 환경들중 하나로부터 유도되거나, 또는 바람직하게 UDPS를 통해 저장 및 공유되는 데이터를 통해 주변장치와 상호작용하는 새로운 프로세스를 초기화하며, 데이터를 제공하거나 또는 주변장치 또는 서브시스템과 상호작용한다.Although these other peripherals can be recognized in the desktop environment of the UICE 2108-1, the process of actually accessing these peripherals (in addition to the keyboard and mouse) may be used in other discrete processing environments that require access to the peripherals. Initiate a new process that interacts with a peripheral through data derived from, or preferably stored and shared via UDPS, providing data or interacting with a peripheral or subsystem.

사용자 인터페이스, 제어 & 스위칭, 및 보호 저장 계산 환경들의 기능들을 결합하는 대안 실시예Alternative embodiment combining functions of user interface, control & switching, and protected storage computing environments

제어 & 사용자 인터페이스 계산 환경(2108-1), 스위칭 계산 환경(2108-2) 및 보호 저장 및 판독/기록 계산 환경(2108-3)에 의하여 수행되는 구조 및 동작들을 기술할때, 이들 동작들이 결합되어 도 10의 실시예에서 분리된 계산 환경들(2108-4 또는 2108-5)과 같은 분리된 사용자 계산 환경으로부터 분리된 단일 계산 환경에서 수행될 수 있다는 것이 인식될 수 있다. 특히, 이러한 구조 및 시스템 구성은 결합된 블록이 사용자 데이터 및/또는 비신뢰 코드를 실행하는 능력을 가지지 않고 실행을 위하여 분리된 계산 환경에 데이터 또는 프로그램들을 전송 또는 복사하는 것으로 상기 동작들을 수행하나 이들을 개방 또는 실행할 수 없는 한 진보적 시스템 및 방법의 장점들중 적어도 일부 장점을 제공할 수 있다. 일부 실시예들에서는 제어 엔티티에 단지 신뢰성 있는 액세스만이 허용된다(다수의 계산 환경들 또는 이의 조합들사이에 분배되던지간에). 예컨대, 실행될 수 있는 규칙들 및 정책들에 따르면, 키보드 및 마우스 입력은 신뢰성 있는 입력 또는 상호작용 매체로서 처리 될 수 있다. 패스워드 또는 생체인식과 같이 컴퓨터 또는 장치를 부팅하여 로그인하는 표준 보안 절차들은 시스템 및 가능한 입력 키보드 및 마우스 입력들을 액세스하는 사용자가 신뢰성 있다는 확신을 제공하기 위하여 구현될 수 있다. These operations are combined when describing the structures and operations performed by the control & user interface computing environment 2108-1, the switching computing environment 2108-2, and the protected storage and read / write computing environment 2108-3. It can be appreciated that the embodiment of FIG. 10 can be performed in a single computing environment separate from a separate user computing environment, such as separate computing environments 2108-4 or 2108-5. In particular, these structures and system configurations perform the above operations by transferring or copying data or programs to a separate computing environment for execution without the combined block having the ability to execute user data and / or untrusted code. One may provide at least some of the advantages of advanced systems and methods so long as they are not open or executable. In some embodiments only reliable access to the control entity is allowed (whether distributed between multiple computing environments or combinations thereof). For example, according to rules and policies that may be enforced, keyboard and mouse input may be treated as a reliable input or interaction medium. Standard security procedures for booting and logging in to a computer or device, such as a password or biometric, can be implemented to provide confidence that the user accessing the system and possible input keyboard and mouse inputs is trustworthy.

동적 구성가능 시스템 구성요소들을 사용하는 대안 실시예Alternative Embodiments Using Dynamically Configurable System Components

동작, 제어, 인터페이스 및 보호 특징들중 일부를 기술하는 하나의 특정 다중 계산 환경을 기술하면, 계산 환경들의 공통 세트가 사용자 인터페이스 계산 환경(UICE), 제어 및 스위칭 계산 환경(CSCE), 보호 저장 계산 환경(PSCE) 및 워드 처리, 이메일, 인터넷 브라우징 또는 다른 동작들을 수행하도록 구성될 수 있는 다른 계산 환경들(CE)의 특정 세트를 구현하기 위하여 사용되는 다른 대안에 대하여 주의를 집중한다.Describing one particular multi-computation environment describing some of the operational, control, interface, and protection features, a common set of computational environments may include a user interface computing environment (UICE), control and switching computing environment (CSCE), and protected storage calculations. Attention is directed to the environment (PSCE) and other alternatives used to implement a particular set of other computing environments (CE) that may be configured to perform word processing, email, internet browsing or other operations.

도 10에는 데이터 또는 다른 정보를 처리하기 위한 시스템(2200)의 대안 실시예가 도시되어 있다. 도 9와 관련하여 방금 기술된 실시예(2100)에서 처럼, 이러한 시스템 및 구조(2200)는 시스템을 구성하고 이 시스템을 동작시키는 방법들 및 절차들과 함께 하나 이상의 프로세서들, 제어기들, 마이크로프로세서들, 중앙처리장치들(CPU), ASIC들, 로직회로들 또는 전자 데이터를 처리하는 다른 수단에 응용 가능하다. 10 illustrates an alternative embodiment of a system 2200 for processing data or other information. As in the embodiment 2100 just described in connection with FIG. 9, such a system and structure 2200 may comprise one or more processors, controllers, microprocessors, together with methods and procedures for configuring the system and operating the system. Or CPUs, ASICs, logic circuits, or other means for processing electronic data.

설명을 편리하게 하기 위하여, 다양한 계산 환경들, 주변장치들, 스위치들 및 제어 라인들 및 다른 신호들과 같은 임의의 엘리먼트들은 동일한 또는 유사한 토폴로지로 도시되고 동일한 도면부호들이 제공된다. 본 발명의 원리들을 구현하기 위한 많은 방식들이 존재하며 이들 상세한 설명들 및 도면들의 각각이(예컨대 도 9 및 도 10의 실시예들 및 시스템 구성들) 본 발명에 따라 시스템을 구현 및 동작시키는 전형적인 방식이라는 것이 인식될 것이다. For ease of explanation, any elements such as various computing environments, peripherals, switches and control lines, and other signals are shown in the same or similar topology and are provided with the same reference numerals. There are many ways to implement the principles of the present invention and each of these details and figures (eg the embodiments and system configurations of FIGS. 9 and 10) is an exemplary way of implementing and operating a system in accordance with the present invention. Will be recognized.

시스템(2200)은 데스크탑 및 사용자 인터페이스 계산 환경(UICE)(2108-1) 처리 유닛, 제어 및 스위칭 계산 환경(2108-2) 처리 유닛, 보호 저장 계산 환경(2108-3) 처리 유닛 및 두개의 분리 처리 유닛 계산 환경 IPUCE #1(2108-3) 및 IPUCE #2(2108-5)를 포함한다. 도 9의 실시예에서, 전형적인 처리 유닛 엘리먼트들은 특정 처리 유닛(2108-1,...,2108-5,...,2108-N)의 적정 동작을 달성하기 위하여 기술될 것이다. 도 10의 실시예에서는 다수의 모듈러 유닛들이 시스템(2200)의 초기화, 구성 및 동작을 위하여 필요한 기능들 및 동작들을 동적으로 수행하도록 하는 공통 구성요소 구성이 기술된다. 동일한 또는 공통 구성요소들이 필요하지 않는 반면에, 의도된 동작 및 처리 기능에 따라 소프트웨어, 펌웨어, 및 사용자 또는 시스템 데이터로 커스터마이징되거나 또는 될 수 있는 구성요소들의 공통 세트를 사용하는 장점들이 존재한다.System 2200 includes a desktop and user interface computing environment (UICE) 2108-1 processing unit, a control and switching computing environment 2108-2 processing unit, a protected storage computing environment 2108-3 processing unit, and two separate units. Processing unit calculation environment IPUCE # 1 (2108-3) and IPUCE # 2 (2108-5). In the embodiment of FIG. 9, typical processing unit elements will be described to achieve proper operation of specific processing units 2108-1,..., 2108-5,..., 2108 -N. In the embodiment of FIG. 10, a common component configuration is described that allows multiple modular units to dynamically perform the functions and operations necessary for initialization, configuration, and operation of system 2200. While the same or common components are not needed, there are advantages of using a common set of components that can be customized or made into software, firmware, and user or system data depending on the intended operation and processing functions.

계산 환경들(2108-1 내지 2108-5)간에 일반적인 일치가 존재하기 때문에 본 설명은 실행 차이들(존재하는 경우) 및/또는 세부사항들에 집중한다.The description focuses on implementation differences (if present) and / or details because there is a general agreement between computational environments 2108-1 through 2108-5.

데스크탑 및 사용자 인터페이스 계산 환경(UICE)(2108-1) 처리 유닛과 관련하여, CPU(2120)는 지금 프로세서(PR) 및 프로세서 결합 RAM 형태의 메모리, 및 공지된 선택적 프로세서 칩 세트 및 BIOS를 포함하는 것으로 도시된다는 것에 유의해야 한다. 임의의 형태의 프로세서, 마이크로-프로세서, 중앙처리장치, ASIC 또는 제어 및 스위칭 계산 환경(2108-2)의 태스크들을 수행할 수 있는 다른 로직회로가 이용될 수 있다는 것이 인식될 것이다. 정교하고 복잡한 데이터 처리를 수행하는데 필요하고 복잡한 컴퓨터 프로그램 명령들을 실행할 수 있는 CPU를 필요로할 수 있는 전체 시스템(2200)에 대하여, 데이터탑 및 사용자 인터페이스 계산 환경(UICE)(2108-1) 처리 유닛의 "프로세서"는 매우 단순한 구성요소일 수 있다.With respect to the desktop and user interface computing environment (UICE) 2108-1 processing unit, the CPU 2120 now includes memory in the form of a processor (PR) and processor coupled RAM, and a known optional processor chip set and BIOS. Note that it is shown as. It will be appreciated that any form of processor, micro-processor, central processing unit, ASIC or other logic circuitry capable of performing the tasks of the control and switching computing environment 2108-2 may be used. A data top and user interface computing environment (UICE) 2108-1 processing unit for the entire system 2200 that may require a CPU capable of executing sophisticated computer program instructions and performing sophisticated and complex data processing. May be a very simple component.

제어 및 스위칭 계산 환경(2108-2) 및 처리유닛 및 보호 저장 계산 환경(2108-3) 처리유닛에 대하여 유사한 설명이 이루어질 수 있다. 사실상, 일부 실시예에서 제어 및 스위칭 계산 환경(2108-2) 처리유닛 및 보호 저장 계산 환경(2108-3) 처리유닛의 기능은 단일 유닛(2155)에 의하여 수행될 수 있으며, 다른 실시예에서 마스터 템플릿 복사 스위치(2151) 및 보호 저장 복사 스위치(2152)는 단일 유닛(2156)상에서 결합될 수 있다.Similar explanations may be made for the control and switching computing environment 2108-2 and the processing unit and the protected storage computing environment 2108-3 processing unit. Indeed, in some embodiments the functions of the control and switching computing environment 2108-2 processing unit and the protected storage computing environment 2108-3 processing unit may be performed by a single unit 2155, in other embodiments the master. Template copy switch 2151 and protective storage copy switch 2152 may be combined on a single unit 2156.

UICE(2108-1)는 CSCE(2184A-1)로부터 신호들(2184A)을 수신하고, 보호 마스터 템플릿(2184A-2)으로부터 운영체계(OS) 및/또는 응용 프로그램들을 수신하며, 보호 저장장치(2184A-3)로부터 데이터를 수신하는 것으로 기술된다. 또한, 이는 보호 저장장치(2184A-4)에 데이터를 다시 전송할 수 있다. 신호들의 이들 4세트는 명확화를 위하여 모든 접속 라인들이 도시되지 않을지라도 계산 환경들의 각각에 존재하는 것으로 기술된다. 일부 처리 동작들에 대하여 모든 신호라인들이 요구되거나 또는 사용되지 않는다.UICE 2108-1 receives signals 2184A from CSCE 2184A- 1, receives operating system (OS) and / or applications from the protection master template 2184A- 2, and protects storage ( 2184A-3). It can also send data back to protected storage 2184A-4. These four sets of signals are described as being in each of the computational environments even though not all connecting lines are shown for clarity. Not all signal lines are required or used for some processing operations.

실시예는 또한 처리 동작들에 다른 주변장치들을 연결하여 이용가능하게 만들기 위하여 UICE, CSCE 및 PSCE와 공동으로 사용하는 할당 기능을 도시한다. 적어도 일 실시예에서, 키보드 및 마우스(또는 예컨대 터치 스크린과 같은 다른 포인 팅 또는 선택 장치)는 다른 계산 환경들과 데스크탑 및 사용자 인터페이스 계산 환경 처리 유닛에 직접 이용가능하다.The embodiment also illustrates the allocation function used in conjunction with UICE, CSCE, and PSCE to make other peripherals available for processing operations. In at least one embodiment, a keyboard and mouse (or other pointing or selecting device such as a touch screen, for example) are available directly to other computing environments and desktop and user interface computing environment processing units.

선택적 ASIC(2126)이 또한 기술된다. 적어도 일부 실시예에서, CPU 또는 ASIC(또는 다른 로직회로)는 요구된 인터페이스 처리 능력을 제공하는데 충분할 수 있으나, 모듈 방식 및 범용성으로 여기에 기술된다.Optional ASIC 2126 is also described. In at least some embodiments, the CPU or ASIC (or other logic circuit) may be sufficient to provide the required interface processing capability, but is described herein in a modular fashion and general purpose.

제어 및 스위칭 계산 환경(2108-2) 처리 유닛과 관련하여, 제어 및 스위칭 계산 환경 처리 유닛(CSCE)은 프로그램들 및 데이터에 대한 저장 콘텐츠들이 계산 환경에 의하여 제공된 기능들 및 동작들에 따라 다르다는 것이 인식될지라도 구성요소들의 유사한 세트로서 도시된다. CSCE(2108-2)의 경우에, 임시 저장장치(2149)는 I/O 스위치 구성 데이터(2158) 및 데이터 전송 또는 판독/기록 구성 데이터(2159)를 포함하는 것으로 지시된다.With regard to the control and switching computing environment 2108-2 processing unit, the control and switching computing environment processing unit (CSCE) determines that the storage contents for the programs and data depend on the functions and operations provided by the computing environment. Although recognized, they are shown as a similar set of components. In the case of CSCE 2108-2, temporary storage 2149 is indicated to include I / O switch configuration data 2158 and data transfer or read / write configuration data 2159.

보호 저장 계산 환경(2108-3) 처리 유닛과 관련하여 유사한 구성요소들의 세트가 기술된다. 마스터 템플릿 및 사용자 데이터에 대한 보호 저장장치는 이러한 유닛의 일부분으로서 기술된다. 운용체계 및 응용 프로그램 엘리먼트들의 템플릿 복사 또는 일부 실시예들에서 사용자에 의하여 요구될 수 있는 다른 처리 동작들에 적합한 다중 템플릿들의 복사들은 보호 저장장치(2141)에 저장된다. 사용자 및 가능한 시스템 파일들은 보호 데이터 저장 UDPS(2143)에 저장된다. 보호 저장장치는 프로세서 또는 CPU가 제공되는 경우에 프로세서 또는 CPU가 보호 메모리로부터 디스에이블 또는 분리되도록 존재할 수 있는 사용자 데이터(또는 코드 명령들)를 실행할 수 있는 프로세서 또는 CPU에 공개되지 않는다는 것을 상기하라. 따라서, 스 위치들(2144, 2145)은 개방하거나, 또는 동작 전압을 제거하거나 또는 동작에 필요한 동작 클록 신호를 억제하는 것과 같이 프로세스를 디스에이블하기 위하여 취해지는 다른 단계들을 취한다. 이는 일반적으로 소프트웨어 및/또는 펌웨어와 상호작용하는 ASIC 또는 다른 로직 또는 처리회로(2146)와 같은 회로가 보호 메모리들에 기록 및 판독하고 이들의 분리를 보존하기 위한 처리능력을 제공한다는 것을 일반적으로 의미할 것이다. 마스터 템플릿 복사 스위치 및 보호 저장 복사 스위치 또는 스위치들은 PSCE의 일부 또는 개별 스위치일 수 있으나 이와 통신할 수 있다. 복사(판독 및/또는 기록)는 예컨대 ASIC 또는 다른 로직 또는 처리 회로(2146)에 의하여 수행될 수 있다. A set of similar components is described with respect to the protected storage computing environment 2108-3 processing unit. Protected storage for master templates and user data is described as part of this unit. Copying of multiple templates suitable for template copying of operating system and application program elements or other processing operations that may be required by the user in some embodiments is stored in the protected storage 2141. User and possible system files are stored in protected data storage UDPS 2143. Recall that protected storage is not disclosed to a processor or CPU capable of executing user data (or code instructions) that may be present to be disabled or separated from the protected memory if a processor or CPU is provided. Thus, switches 2144 and 2145 take other steps taken to disable the process, such as opening, removing the operating voltage, or suppressing the operating clock signal required for operation. This generally means that circuitry, such as an ASIC or other logic or processing circuitry 2146 that interacts with software and / or firmware, provides the processing power to write to and read from the protected memories and preserve their separation. something to do. The master template copy switch and the protected save copy switch or switches may be part of or separate from the PSCE but may communicate with it. Copy (read and / or write) may be performed by, for example, an ASIC or other logic or processing circuit 2146.

두개의 분리 처리 유닛과 관련하여 계산 환경 IPUCE #1(2108-4) 및 IPUCE #2(2108-5)는 이러한 모듈러 계산 환경 구조를 유지한다. 이들 처리 유닛들은 유리하게 워드 처리, 인터넷과의 접속 및 상호작용, 셀룰라 전화 수신 및 음성 코딩 및 디코딩 등과 같이 수행하기 위하여 요청될 수 있는 처리 동작들의 전체 스펙트럼을 지원하는 CPU를 포함할 수 있다.Computing environments IPUCE # 1 (2108-4) and IPUCE # 2 (2108-5) maintain this modular computing environment structure in connection with two separate processing units. These processing units may advantageously include a CPU that supports the full spectrum of processing operations that may be required to perform such as word processing, connection and interaction with the Internet, cellular telephone reception and voice coding and decoding, and the like.

결합된 제어 & 사용자 분리 계산 환경들과 관련한 실시예Embodiments with Combined Control & User Separate Compute Environments

도 11에는 결합된 제어 계산 환경 및 하나(또는 하나 이상의) 분리 계산 환경을 가진 본 발명의 다른 대안 실시예(2300)가 기술되어 있다. 결합된 제어 계산 환경은 전술한 제어 & 사용자 인터페이스 계산 환경(2108-1), 스위칭 계산 환경(2108-2) 및 보호 저장 및 판독/기록 계산 환경(2108-3)의 임의의 필요한 동작들을 제공하기 위하여 계산 시스템(2300)의 동작을 조정한다. 분리된 계산 환경(2304-1)은, ICE가 처리 로직장치와 스위칭가능하게 결합 및 분리될 수 있는 저장장치(2380) 및 ICE를 위하여 의도된 명령들의 세트를 실행하기 위한 처리 로직장치(2381)를 포함한다는 것을 제외하고, 초기의 실시예에 기술된 형식을 취할 수 있으며 여기에서 더 상세히 설명되지 않는다. 11 illustrates another alternative embodiment 2300 of the present invention having a combined control computing environment and one (or more than one) separate computing environment. The combined control calculation environment provides any necessary operations of the control & user interface calculation environment 2108-1, the switching calculation environment 2108-2, and the protected storage and read / write calculation environment 2108-3 described above. To adjust the operation of calculation system 2300. Separate computing environment 2304-1 includes storage 2380 in which the ICE is switchably coupled and separated from the processing logic and processing logic 2381 for executing a set of instructions intended for the ICE. Except to include, may take the form described in the initial embodiment and will not be described in more detail herein.

임의의 주어진 실시예에서, 일부 특징들 및 절차 단계들은 선택적이며, 실행하기에 적합한 능력들 및/또는 적정 보안 또는 면역성에 따라 요구되지 않을 수 있다. 일부 특징들 및 절차들은 다른 인자들중에서 시스템의 현재 상태 및 의도된 계산 환경 동작에 따라 동적으로 실행될 수 있다. 어느 한 경우에, 이들 제어 동작들이 분리된 사용자 계산 환경으로부터 개별(물리적 또는 시간적으로) 계산 환경에서 수행된다는 것이 인식될 것이다. In any given embodiment, some features and procedural steps are optional and may not be required depending on the appropriate capabilities and / or appropriate security or immunity to implement. Some features and procedures may be executed dynamically, depending on the current state of the system and the intended computing environment behavior, among other factors. In either case, it will be appreciated that these control operations are performed in a separate (physical or temporal) computing environment from a separate user computing environment.

이러한 실시예에서, 제어 처리 또는 계산 환경(CCE)(2302)은 하나 이상의 분리된 계산 환경들(2304-N)을 생성, 제어 및 종료하도록 설정 및 동작된다. 이러한 실시예에서, 단지 하나의 분리된 계산 환경(2304-1)은 단순히 설명을 위하여 기술되나, 사용자 처리를 위하여 임의의 수의 분리된 계산 환경들(ICE) 또는 서브시스템들은 융통적 또는 동적으로 구성 및 동작될 수 있다.In this embodiment, the control processing or computing environment (CCE) 2302 is set up and operated to create, control, and terminate one or more separate computing environments 2302 -N. In this embodiment, only one separate computing environment 2304-1 is described for illustrative purposes only, but any number of separate computing environments (ICE) or subsystems for user processing may be flexibly or dynamically. Can be configured and operated.

CCE(2302)는 임의의 로직 회로 또는 다른 로직 수단(2320)(예컨대 제어기, 마이크로-제어기, 프로세서, 마이크로프로세서, 중앙처리장치 또는 CPU, ASIC, 프로그램 가능 로직장치 등), 및 하나 이상의 스위치들 또는 스위칭 수단(2325) 및 하나 이상의 통신 링크들(2328)을 통해 로직수단(2320)에 스위칭가능하게 접속 및 분리될 수 있는 저장장치(2321)를 포함한다. 스위치 또는 스위칭 수단(2325)은 일반적으로 저장장치(2321) 및 로직수단(2320)사이에서 신호들 및 데이터를 접속 및 분리하기에 적합한 다수의 스위치들 또는 스위칭 엘리먼트들을 포함할 수 있으며, CPU와 같은 로직회로와 저장장치를 접속 및 분리하기 위하여 공지된 신호 컨디셔닝 회로를 포함할 수 있다. CCE 2302 may be any logic circuit or other logic means 2320 (eg, controller, micro-controller, processor, microprocessor, central processing unit or CPU, ASIC, programmable logic unit, etc.), and one or more switches or Storage 2232 which can be switchably connected and disconnected to logic means 2320 via switching means 2325 and one or more communication links 2328. The switch or switching means 2325 may generally comprise a number of switches or switching elements suitable for connecting and disconnecting signals and data between the storage 2321 and the logic means 2320, such as a CPU. Known signal conditioning circuits may be included to connect and disconnect logic circuits and storage devices.

로직 회로 또는 로직 수단(2320)의 타입에 따르면, ROM, RAM, 레지스터 등의 형태와 같은 개별 메모리는 하나 이상의 메모리 스위치들(2326)을 통해 스위칭가능하게 접속 또는 분리할 수 있다(인에이블 또는 디스에이블할 수 있다). 스위칭은 선택적으로 메모리 또는 저장장치로의 어느 한방향(예컨대 기록 또는 판독) 또는 양방향 통신 또는 시그널링을 수행할 수 있다. 이러한 실시예 및 본 발명의 다른 실시예와 관련하여, 스위치, 스위치들, 스위칭 수단 등 용어들은 가능한 가장 넓게 해석될 수 있으며, 또한 신호를 한 위치로부터 다른 위치로 물리적 또는 논리적으로 접속 또는 분리할 수 있거나 또는 전기 또는 광학 접속이 존재하는지의 여부와 무관하게 상기 위치들사이에서 신호를 통신하는 능력을 인에이블 또는 디스에이블할 수 있는 임의의 장치, 하드웨어 또는 소프트웨어일 수 있다.According to the type of logic circuit or logic means 2320, individual memories, such as in the form of ROM, RAM, registers, etc., can be switched or connected (disabled or disabled) via one or more memory switches 2326. Can be enabled). The switching may optionally perform one way (eg write or read) or two way communication or signaling to memory or storage. With respect to this embodiment and other embodiments of the invention, terms such as switches, switches, switching means, etc. may be interpreted as broadly as possible and may also physically or logically connect or disconnect signals from one location to another. Or any device, hardware or software capable of enabling or disabling the ability to communicate signals between the locations, whether or not there is an electrical or optical connection.

로직 회로 또는 로직 수단(2320)의 타입 및 능력은 일반적으로 CCE(2302)에 의하여 수행될 로직 또는 다른 처리 동작들에 따를 수 있다. 예컨대, 범용 노트북 컴퓨터에 대한 제어로서 수행될 처리 동작들은 이들 다른 장치들에 의하여 수행될 동작들이 일반적으로 다를 수 있기 때문에 적어도 부분적으로 셀룰라 전화 또는 전자 카메라와 관련하여 수행될 제어 동작들과 다를 수 있다.The type and capability of the logic circuit or logic means 2320 may generally depend on the logic or other processing operations to be performed by the CCE 2302. For example, processing operations to be performed as control for a general purpose notebook computer may differ from control operations to be performed at least in part with respect to a cellular phone or electronic camera since the operations to be performed by these other devices may generally be different. .

일부 실시예들에서, 다양한 스위치들(예컨대, 스위치들(2350, 2360, 2325, 2326), 및 저장장치(2321), 메모리(2322), I/O 또는 주변장치들(예컨대, 키보드(2390), 마우스(2391), 또는 네트워크 NIC(2392)) 및/또는 분리된 계산 환경들(2304)의 저장장치(들)(2380)와의 통신 또는 신호들을 접속 또는 분리하는 스위칭 능력은 로직 회로(2320) 또는 다른 실시예들에서 개별 스위칭 로직장치에 의하여 제공될 수 있으며, 즉 로직 회로 또는 로직수단(2320)에 의하여 모두 또는 부분적으로 제어될 수 있다. 이러한 실시예 또는 다른 실시예들에서, 신호 스위치 또는 스위치들의 세트 또는 다중 개별 스위치들은 적정 스위칭 동작들을 수행하기 위하여 이용될 수 있다.  In some embodiments, various switches (eg, switches 2350, 2360, 2325, 2326), and storage 2321, memory 2232, I / O or peripherals (eg, keyboard 2390). Switching capability to connect or disconnect signals or communication with storage (s) 2380 of mouse 2391, or network NIC 2392) and / or separate computing environments 2304 may be selected from logic circuit 2320. Or in other embodiments may be provided by separate switching logic devices, ie all or partly controlled by logic circuitry or logic means 2320. In these or other embodiments, a signal switch or A set of switches or multiple individual switches can be used to perform the appropriate switching operations.

스위치들의 적어도 일부가 CCE(2320)에 의하여 적어도 부분적으로 제어될 수 있는 반면에, 통신 링크들, 신호 라인들, 버스들 또는 다른 접속부들이 CCE(2320)의 엘리먼트들을 통과하지 않거나 또는 CCE(2320)의 엘리먼트들에 의하여 액세스가능하다. 예컨대, 적어도 일 실시예에서, 네트워크 NIC(2392)는 분리된 계산 환경(2304-1)과 스위칭가능하게 접속 또는 분리될 수 있으나, NIC로부터 수신된 데이터 또는 비트들은 CCE(2320)을 통과하지 않고 단지 ICE(2304-1)를 통과하여 악성 에이전트에의 노출을 방지한다. 적어도 일부 실시예들에서, 개별 모뎀 및/또는 네트워크 NIC 장치들 및 통신 경로들은 면역성 및 시스템 보호에 대한 추가 측정치를 제공하기 위하여 외부 환경으로부터 데이터를 수신하고 외부 한경에 데이터를 송신하기 위하여 제공된다. 수신된 데이터가 송신된 데이터와 분리될때, 이는 오염되거나 또는 악성 에이전트를 포함하는 데이터를 송신할 기회들이 감소 또는 제거되기 때문에 시스템(2300) 외부의 다른 컴퓨터들 또는 장치들에 보호 측정치를 제공한다. 저장장치(2321)는 단일 물리적 장치, 두개 이상의 물리적 장치들의 결합 또는 하나 이상의 물리적 장치들중 하나 또는 일부로서 구현될 수 있다. 예컨대, 저장장치(2321)는 임의의 타입의 자기 메모리, 광 메모리, 고체상태 메모리 또는 공지되거나 또는 개발될 수 있는 다른 메모리 타입들을 가질 수 있다.While at least some of the switches may be at least partially controlled by CCE 2320, communication links, signal lines, buses or other connections do not pass through elements of CCE 2320 or CCE 2320. Accessible by elements of. For example, in at least one embodiment, the network NIC 2392 may be switchably connected or disconnected from the separate computing environment 2304-1, but data or bits received from the NIC do not pass through the CCE 2320. It only passes ICE 2304-1 to prevent exposure to malicious agents. In at least some embodiments, individual modem and / or network NIC devices and communication paths are provided to receive data from an external environment and to transmit data to an external environment to provide additional measures of immunity and system protection. When the received data is separated from the transmitted data, it provides a measure of protection to other computers or devices outside of the system 2300 because the opportunities for transmitting data that are contaminated or containing a malicious agent are reduced or eliminated. Storage 2321 may be implemented as a single physical device, a combination of two or more physical devices, or as one or part of one or more physical devices. For example, storage 2321 may have any type of magnetic memory, optical memory, solid state memory, or other memory types that may be known or developed.

기술된 실시예에서, 저장장치(2321)는 마스터 템플릿 보호 저장장치(MTPS)(2322), 사용자 데이터 보호 저장장치(UDPS)(2323), 저장장치 및/또는 I/O 장치들에 대한 스위치 구성 정보 또는 데이터(2324)를 제공할 뿐만아니라 사용자 및 제어부와의 장치 인터페이스를 지원하는데 필요할 수 있는 시스템 엘리먼트들 및 응용 프로그램들(2325)을 동작시키는 동작 부분을 제공한다. 임시 작업 저장장치(2326)가 또한 선택적으로 제공될 수 있다. 일부 실시예들에서, 이들 다른 저장 구성요소들에 대한 저장장치의 타입은 저장장치로부터 구성요소들의 고속 판독 및/또는 기록 액세스 및/또는 소거를 용이하게 하기 위하여 유리하게 선택될 수 있다. 특히, 고체상태 또는 반도체 메모리는 사용자 계산 환경 세션이 완료되고 종료 또는 차단된후에 사용자 계산 환경의 고속 액세스, 준비 및 신뢰성 있는 소거를 용이하게 할 수 있다.In the described embodiment, storage 2231 is configured for switch to master template protected storage (MTPS) 2322, user data protected storage (UDPS) 2323, storage and / or I / O devices. In addition to providing information or data 2324, it also provides an operating portion for operating system elements and application programs 2325 that may be needed to support device interfaces with users and controls. Temporary work storage 2326 may also optionally be provided. In some embodiments, the type of storage for these other storage components may be advantageously selected to facilitate fast read and / or write access and / or erase of the components from the storage. In particular, the solid state or semiconductor memory may facilitate fast access, preparation and reliable erasure of the user computing environment after the user computing environment session is completed and terminated or blocked.

하나 이상의 분리된 계산 환경들(2304-1,...,2304-N)은 융통성있게 또는 동적으로 구성될 수 있다. 다수의 프로세서들 또는 다른 하드웨어가 다수의 물리적(예컨대, 하드웨어) 개별 세션들을 제한하는 경향을 가질 때, 부가적인 분리된 계산 환경들은 선택적으로 시간적 분리를 사용하여 그러나 간헐적으로 본 명세서에 기술 된 바와같이 하드웨어를 액세스함으로서 구현될 수 있다. One or more separate computing environments 2304-1,..., 2304-N can be configured flexibly or dynamically. When multiple processors or other hardware have a tendency to limit multiple physical (eg, hardware) individual sessions, additional separate computing environments optionally use temporal separation but as intermittently described herein. It can be implemented by accessing hardware.

각각의 ICE(2304)는 보호 저장장치(예컨대, MTPS(2322) 및/또는 UDPS(2323)) 또는 저장장치(2321)의 다른 부분들에 대하여 판독 및/또는 기록하기 위한 액세스가 요구될 수 있도록 CCE 제어 스위치(2350)를 통해 저장장치(또는 저장장치의 일부분들)(2321)에 스위칭가능하게 유리하게 접속가능하다. 도 11에 기술된 실시예에서는 데이터-인(2351), 데이터-아웃(2352), 및 OS-Apps(운영체계 및 응용 프로그램들)(2352) 통신 또는 신호 경로가 기술되어 있다. 다른 실시예들에서, 단일 통신 또는 신호들 경로(예컨대, 와이어, 멀티-와이어 버스 또는 광학 링크)는 단일 링크를 통해 통신을 할당하여 제어하기 위하여 경로 할당 및 중재 회로 또는 다른 로직 수단과 함께 사용될 수 있다. 게다가, ICE(2304)내에서 임의의 운영체계 및/또는 응용 프로그램들을 위하여 제공할 수 있는 시스템들에서는 CCE내의 저장장치(2321) 및 ICE(2304)의 저장장치(2280)간에 경로를 제공할 필요가 없다. Each ICE 2304 may require access to read and / or write to protected storage (eg, MTPS 2322 and / or UDPS 2323) or other portions of storage 2321. Switchably advantageously connectable to storage (or portions of storage) 2321 via CCE control switch 2350. In the embodiment described in FIG. 11, data-in 2351, data-out 2352, and OS-Apps (operating system and applications) 2352 communication or signal paths are described. In other embodiments, a single communication or signals path (eg, wire, multi-wire bus or optical link) may be used with path assignment and arbitration circuitry or other logic means to assign and control communication over a single link. have. In addition, systems that can provide for any operating system and / or applications within the ICE 2304 need to provide a path between the storage 2321 in the CCE and the storage 2280 of the ICE 2304. There is no.

이러한 또는 이들 동일한 통신 링크들(2351, 2352, 2353)은 임의의 플래그들(2355), 윈도우 x-y 좌표들(2356), ICE 비디오 출력(2357)을 통신하고 및/또는 전용 또는 일시적으로 공유된 간헐적 방식으로 주변장치들을 접속하기 위하여 사용될 수 있다. 선택적으로, 개별 전용 또는 공유된 통신 링크들은 이들 신호들 또는 데이터를 위하여 이용될 수 있다. These or these same communication links 2351, 2352, 2353 communicate arbitrary flags 2355, window xy coordinates 2356, ICE video output 2357 and / or dedicated or temporarily shared intermittent Can be used to connect peripheral devices in a manner. Optionally, separate dedicated or shared communication links may be used for these signals or data.

플래그들(2355)은 "마스터 템플릿을 판독하려고 하는 ICE", 사용자 보호 데이터를 판독하려고 하는 ICE", "완료된 ICE 처리", "발생한 ICE 처리 에러, "보호 저장장치에 파일을 저장하기 위한 요구", "파일 저장 동작 완료", "ICE를 리셋 및 소거하기 위한 CCE 명령", 및 적절한 동작을 지원하기 위한 다른 명령들 및 상태와 같은(그러나, 이에 제한되지 않음) CCE(2320) 및 ICE(2304)간에 상태 및/또는 명령 및 제어를 제공한다. 본 발명의 일부 실시예들에서, 플래그들의 성질 및 복잡성은 상태 또는 명령 및 제어 플래그들이 ICE 및 CCE간에 바이러스 또는 악성 코드를 실수로 통신 또는 전송할 수 있는 임의의 가능성을 감소 또는 제거하기 위하여 단순하고 짧게(예컨대, 소수의 비트들 또는 바이트) 고의로 유지된다.Flags 2355 indicate "ICE to read master template", ICE to read user protected data "," Completed ICE processing "," ICE processing error occurred "," Request to save file to protected storage " CCE 2320 and ICE 2304 such as, but not limited to, "Completing file save operation", "CCE instruction to reset and erase ICE", and other instructions and status to support proper operation. Provide status and / or commands and controls. In some embodiments of the present invention, the nature and complexity of the flags are simple and short to reduce or eliminate any possibility that state or command and control flags may inadvertently communicate or transmit a virus or malware between ICE and CCE. (E.g., a few bits or bytes) remain intentionally.

다른 실시예들과 관련하여 이미 기술된 바와같이, 비디오 또는 그래픽 관련 출력 신호 또는 데이터(2357)는 ICE 사용자 환경의 연출 또는 표현(예컨대, 워드 처리 스크린)이 디스플레이 스크린 또는 다른 장치(2393)상에 포착되어 디스플레이될 수 있다. 대부분의 실시예들에서, 단일 디스플레이 장치가 이용될 것이나 본 발명은 다중 디스플레이 장치들 또는 사실상 다중 비디오 또는 그래픽 프로세서들을 배제하지 않는다. 윈도윙 환경에서 동작할때, 윈도우 x-y 또는 라인-샘플 좌표들 및 윈도우 크기들 또는 ICE 윈도우에 대한 다른 기술자들은 다른 ICE들로부터의 다중 윈도우들이 CCE(2302) 또는 비디오 디스플레이(2393)에 의하여 생성된 데이크탑(예컨대, 마이크로소프트2000 데스크탑) 디스플레이와 서로 그리고 선택적으로 그러나 적절하게 결합될 수 있도록 CCE에 의하여 제어되는 CCE(또는 비디오 프로세서(2392)에 통신된다. As already described in connection with other embodiments, video or graphic related output signals or data 2357 may be provided on a display screen or other device 2393 for presentation or representation of an ICE user environment (eg, a word processing screen). Can be captured and displayed. In most embodiments, a single display device will be used but the present invention does not exclude multiple display devices or in fact multiple video or graphics processors. When operating in a windowing environment, the window xy or line-sample coordinates and window sizes or other descriptors for the ICE window indicate that multiple windows from different ICEs are generated by the CCE 2302 or the video display 2393. The CCE (or video processor 2392) is controlled by the CCE to enable a desktop (eg, Microsoft 2000 desktop) display to be coupled with each other and optionally but suitably.

통신 경로를 통해 통신되는 데이터량 및/또는 데이터 타입을 제한하는 필터들 또는 리미터들은 CCE 저장장치(2321) 및 ICE(2304)사이, 및/또는 ICE(2304) 및 비디오 디스플레이 제어 유닛(2392)사이, 및/또는 플래그들, 윈도우 좌표들 및 차 원들, 또는 다른 상태 또는 명령 및 제어 신호들에 대한 CCE 및/또는 ICE(2304)사이에 선택적으로 그러나 유리하게 제공될 수 있다. Filters or limiters that limit the amount of data and / or data type communicated over the communication path are between CCE storage 2321 and ICE 2304, and / or between ICE 2304 and video display control unit 2392. And / or alternatively but advantageously may be provided between CCE and / or ICE 2304 for flags, window coordinates and dimensions, or other state or command and control signals.

예컨대, 저장 액세스 리미터(2370)는 저장장치(2321) 및 ICE 저장장치(2380)사이에 제공될 수 있다. 유사한 방식으로, 리미터(2371)는 각각의 ICE 및 CCE 또는 비디오 디스플레이 제어 유닛(2392)사이의 비디오 신호 경로에 배치될 수 있다.For example, storage access limiter 2370 may be provided between storage 2321 and ICE storage 2380. In a similar manner, limiter 2331 may be placed in the video signal path between each ICE and CCE or video display control unit 2392.

일 실시예에서 리미터는 스위치들(예컨대 스위치들(2350, 2360))과 결합되는 반면에, 다른 실시예들에서 스위치들은 개별 스위치이다. 이러한 필터 또는 리미터 기능은 CCE 로직장치의 부분 또는 ICE 로직장치의 부분 또는 이들 둘다의 부분으로서 구현될 수 있다. ICE 및 CCE 엘리먼트들간의 일부 검증과 관련한 리던던시가 선택적으로 제공될 수 있다. 일반적으로, 이러한 실시예에서, 이들 필터링 또는 리미팅 동작들중 일부는 시도된 통신 및 허가된 통신 세트간의 비교를 포함할 것이다. 만일 시도된 통신이 허용되면, 시도된 통신은 통과될 것이며 만일 허용되지 않으면 통과되지 않을 것이다. 다양한 에러 메시지들 및/또는 통지들은 규칙들 또는 정책들에 따라 선택적으로 그러나 적절하게 구현될 수 있다.In one embodiment the limiter is combined with switches (eg switches 2350, 2360), while in other embodiments the switches are separate switches. This filter or limiter function may be implemented as part of the CCE logic device, part of the ICE logic device, or both. Redundancy with respect to some verification between ICE and CCE elements may optionally be provided. In general, in this embodiment, some of these filtering or limiting operations will include a comparison between the attempted communication and the authorized communication set. If the attempted communication is allowed, the attempted communication will pass and if not allowed it will not. Various error messages and / or notifications may be selectively but suitably implemented according to rules or policies.

제어 및 분리된 사용자 처리를 위하여 일시적으로 분리된 단일 계산 환경을 가진 실시예Embodiments with a Single Compute Environment Temporarily Separated for Controlled and Separate User Processing

도 12를 참조하면, 도 12에는 물리적 단일 계산 환경만을 제공하나 간헐적 액세스 및 일시적 또는 시간적 분리된 액세스를 사용하여 다수의 논리적 또는 가상적 계산 환경들을 지원할 수 있는 실시예가 기술되어 있다. 이러한 단일 물리적 계산 환경은 이전 실시예에서 기술된 CCE의 제어 및 하나 이상의 사용자 처리 세션 들의 분리된 처리 계산 환경을 지원할 수 있다. 시간적 간격을 가진 이러한 타입의 간헐적 액세스는 다중 물리적 계산 환경들을 가지거나 또는 지원할 수 있는 본 발명의 다른 실시예들과 함께 이용될 수 있다. Referring to FIG. 12, an embodiment is described in which FIG. 12 provides only a single physical computing environment but can support multiple logical or virtual computing environments using intermittent access and temporal or temporal separated access. This single physical computing environment may support the control of the CCE described in the previous embodiment and a separate processing computing environment of one or more user processing sessions. This type of intermittent access with temporal spacing may be used with other embodiments of the present invention that may have or support multiple physical computing environments.

기술된 실시예에서, 단일 처리 로직 엘리먼트(2404)(예컨대, 프로세서, 마이크로프로세서, ASIC, 제어기, 마이크로제어기 또는 다른 로직 또는 처리 회로 수단과 같은)는 스위치 또는 스위칭 수단(2412)을 통해 저장장치(2406)에 통신가능하게 접속될 수 있다. In the described embodiment, a single processing logic element 2404 (eg, such as a processor, microprocessor, ASIC, controller, microcontroller or other logic or processing circuit means) is connected via a switch or switching means 2412 to storage ( 2406 may be communicatively connected.

일 실시예에서, 저장장치(2406)는 분리된 계산 환경 저장장치(2410) 및 제어 계산 환경(2408)간에 분리를 제공하도록 물리적 또는 논리적으로 분할 또는 분리될 수 있으며, 여기서 예컨대 마스터 템플릿 및 보호 사용자 데이터 뿐만아니라 임의의 운영체계 및 응용 프로그램은 오염을 걱정하지 않고 저장될 수 있다. 분리된 계산 환경 저장장치는 ICE 실행동안 사용자 데이터, 운영체계 및 응용 프로그램 구성요소들, 임시 저장의 작업 사본들을 저장하기 위하여 제공된다. 공통 물리적 저장장치를 공유하면, ICE 모드에서 동작하는 동안 악성 코드의 실행이 마스터 템플릿, 오리지날 보호 사용자 데이터 파일 등의 손상과 같이 보호 데이터 저장장치에 도달하거나 또는 상기 저장장치를 오염시키거나 또는 감염시키지 않도록 하는 제어 루틴들 또는 절차들이 유리하게 수반된다. In one embodiment, storage 2406 may be physically or logically partitioned or separated to provide separation between separate computing environment storage 2410 and control computing environment 2408, where, for example, master templates and protected users. In addition to data, any operating system and application can be stored without worrying about contamination. Separate compute environment storage is provided for storing working copies of user data, operating system and application components, and temporary storage during ICE execution. Sharing a common physical storage device ensures that execution of malicious code while operating in ICE mode does not reach, contaminate or infect protected data storage devices such as corruption of master templates, original protected user data files, etc. Control routines or procedures are advantageously involved.

본 발명의 다른 실시예들은 물리적인 개별 저장장치를 이용하거나, 또는 해커들이 할당된 메모리 어드레스 범위를 오버플로우하도록 시도할 수 있는 액세스와 같은 의도치 않은 액세스가 발생할 수 없도록 메모리 어드레스 또는 액세스 제어를 위하여 제공한다. 계산 환경 작업 저장장치의 분리와 관련하여 제어 및 보호 저장을 위하여 물리적인 개별 저장장치를 제공하면 이것이 완전한 물리적 분리의 가능성을 제공하기 때문에 부가적인 분리 레벨을 제공하며, 여기서 통신 라인들 또는 버스들은 오염이 발생하지 않는 두개(또는 이들은 물리적 또는 논리적으로 스위칭되거나 또는 디에이블될 수 있다)를 상호 접속하지 않는다. 다른 물리적 저장장치의 사용은 또한 제어 환경 저장 부분들용 ROM 또는 EEPROM, ICE용 RAM과 같은 다른 저장장치들, 및 임의의 큰 데이터 또는 프로그램 저장을 위한 하드 디스크와 같은 자기 저장장치를 사용할 수 있는 장점들을 선택적으로 그러나 유리하게 제공한다. 저장을 위한 ICE 또는 CCE 요건들중 하나는 다수의 다른 물리적 메모리들 및/또는 메모리 타입들을 사용할 수 있도록 한다. Other embodiments of the present invention utilize memory separate storage or access control to prevent unintended access such as access that may allow hackers to attempt to overflow the allocated memory address range. to provide. Providing physical separate storage for control and protected storage with regard to the separation of computing environment work storage provides an additional level of isolation because it offers the possibility of complete physical separation, where communication lines or buses are contaminated Do not interconnect the two that do not occur (or they may be physically or logically switched or disabled). The use of other physical storage also benefits from the use of magnetic storage such as ROM or EEPROM for control environment storage portions, other storage devices such as RAM for ICE, and hard disks for storing any large data or programs. Provide them selectively but advantageously. One of the ICE or CCE requirements for storage makes it possible to use a number of different physical memories and / or memory types.

스위치 또는 스위칭 수단(2412)은 계산 환경들중 선택된 환경과 입력/출력 또는 다른 주변 장치들(키보드(2418) 및 마우스(2418)와 같은(그러나, 이에 제한되지 않음))를 결합 및 분리하는 역할을 할 수 있다. 동일한 처리 하드웨어가 다른 계산 환경들에 시간적으로 할당되는 실시예들에서, 스위칭은 적정 분리도가 유지되도록 입력, 출력 또는 다른 주변장치의 사용을 인에이블하거나 또는 디스에이블하기에 바람직할 수 있다. 예컨대, 비록 키보드 및 마우스가 워드 처리 애플리케이션을 수행하는 제어 및 분리 계산 환경과 결합될 수 있을지라도, 네트워크 NIC 카드는 제어 환경이 아니라, 인터넷 네트워크 브라우징 세션을 수행하는 분리 계산 환경과 결합되거나 또는 이 분리 계산 환경으로 인에이블될 수 있다.The switch or switching means 2412 combines and isolates a selected one of the computing environments and input / output or other peripheral devices (such as, but not limited to, the keyboard 2418 and the mouse 2418). can do. In embodiments where the same processing hardware is allocated in time to different computing environments, switching may be desirable to enable or disable the use of inputs, outputs or other peripherals so that proper isolation is maintained. For example, although the keyboard and mouse may be combined with a control and isolation computing environment that performs word processing applications, the network NIC card may or may not be combined with a separate computing environment that performs Internet network browsing sessions, rather than a control environment. It can be enabled into the computing environment.

일 실시예에서, 리셋 모드는 부트를 초기화하거나 또는 공지된 초기 상태로 재시작되도록 제공된다. 이러한 초기 상태에 대한 운영체계 및 응용 프로그램들은 리셋 및 재로드가 용이하게 수행될 수 있는 형태로 제어 환경 저장장치(2408)의 비휘발성 메모리에 저장된다. 일 실시예에서, 이는 고속 ROM에 저장된다. 이러한 모드는 하나 이상의 새로운 파일들 또는 데이터 세트들의 생성 또는 이러한 파일들 또는 데이터 세트들의 수정된 또는 새로운 버전 또는 버전들의 생성시에 분리 계산 환경이 정상적으로 완료하는 처리 동작을 수행하도록 한다. 일 실시예에서, 리셋 모드 절차는 임의의 이러한 새로운 또는 수정된 파일들 또는 데이터 세트들에 대한 특정 저장 범위로 보이거나 또는 규정된 규칙들 또는 정책들에 따라 보호 저장장치에 파일들을 추가하거나 또는 보호 저장장치의 파일들을 교체하도록 보호 저장장치에 복사한다. 리셋 모드 절차가 단순하게 파일들 또는 데이터 세트들을 복사하나 이들을 개방 또는 실행하지 않기 때문에, 기술된 다른 실시예들에서 보호가 유지된다.In one embodiment, a reset mode is provided to initiate a boot or restart to a known initial state. Operating systems and applications for this initial state are stored in the non-volatile memory of control environment storage 2408 in a form that can be easily reset and reloaded. In one embodiment, it is stored in a high speed ROM. This mode allows the separation computation environment to perform processing operations that normally complete upon creation of one or more new files or data sets or creation of modified or new versions or versions of such files or data sets. In one embodiment, the reset mode procedure appears to be a specific storage range for any such new or modified files or data sets or adds or protects files to protected storage in accordance with defined rules or policies. Copy files from the storage device to the protected storage device for replacement. Since the reset mode procedure simply copies files or data sets but does not open or execute them, protection is maintained in the other embodiments described.

다른 실시예에서, 하드웨어 자원들이 공유되는 시간 분리는 중간 로직장치 또는 프로세서(2402) 상태를 저장 및 복원함으로서 수행된다. 프로세서(2404) 및 임의의 다른 필요한 상태 정보 또는 데이터를 저장함으로서, 제어 프로세스와 같은 하나의 프로세스는 인터럽트되어 새로이 분리된 계산 프로세스가 (완전히 또는 부분적으로) 수행될 수 있으며, 제어 프로세서 상태는 인터럽트 및 재시작될때 저장 및 복원된다. 다중 처리 세션들은 최소 물리적 하드웨어 세트를 사용하여 상기와 같은 방식으로 수행될 수 있다. 다중 프로세스들이 규정된 기간동안 조절될 수 있도록 프로세서 상태를 저장 및 복원하는 구조들 및 방법들은 때때로 동시 처리 또 는 다중 작업(multi-tasking)으로 언급된다. 이들 공지된 구조들 또는 방법들은 더 상세히 설명하지 않을 것이다. 그러나, 본 발명과 관련하여, 레지스터들 또는 다른 메모리 저장 장치는 분리가 유지되고 악성 코드가 분리를 회피할 수 없도록 다수의 계산 환경들에 대한 프로세서(2404) 상태를 개별적으로 저장하기 위하여 제공될 수 있다는 것에 유의해야 한다. 따라서, 프로세서의 시간적으로 할당된 각각의 개별 세그먼트(예컨대 칩들, RAM, 저장장치, 또는 이들 또는 다른 구성요소들 또는 세그먼트들의 일부 결합과 같은)는 리셋되거나 또는 개별적으로 , 일부 그룹으로 또는 집합적으로 치료될 수 있다. In another embodiment, time separation in which hardware resources are shared is performed by saving and restoring an intermediate logic device or processor 2402 state. By storing the processor 2404 and any other necessary state information or data, one process, such as a control process, can be interrupted so that a newly separate computational process can be performed (completely or partially), and the control processor state can be interrupted and Saved and restored when restarted. Multiple processing sessions may be performed in this manner using a minimal set of physical hardware. Structures and methods of storing and restoring processor state so that multiple processes can be regulated for a defined period of time are sometimes referred to as concurrent processing or multi-tasking. These known structures or methods will not be described in further detail. However, in the context of the present invention, registers or other memory storage devices may be provided to separately store processor 2404 state for multiple computing environments so that separation is maintained and malicious code cannot avoid separation. Note that there is. Thus, each temporally allocated individual segment of the processor (such as chips, RAM, storage, or some combination of these or other components or segments) may be reset or individually, in some groups or collectively. Can be treated.

일 실시예에서, 개별 리셋 로직장치(2450)는 다른 계산 환경들사이를 전이시키고 하나의 프로세스가 인터럽트될때 상태를 저장하며 프로세스가 재시작될때 상기 상태를 복원하는데 필요한 분리 제어를 제공하는 하드웨어 또는 소프트웨어 리셋 버튼 또는 스위치(2451)와 결합된다. 리셋 로직장치는 하드-와이어링되거나 또는 프로그램가능할 수 있으며, 다른 장치(2400)의 세팅 및 상태를 저장 및 복원하기 위하여 프로세서(2404) 및 스위치(2412)에 신호들을 생성한다. 장치 구성요소들에 대한 제어 라인들은 필요에 따라 상태 저장 레지스터들(2453), 저장장치(2406), 프로세서(2404), 스위치(2412)사이에 제공된다. 일부 실시예에서, 분리 계산 환경에서의 프로세스는 일반적으로 단지 제어 프로세스만 중지될 수 있도록 완료될 수 있다. 다른 실시예들에서, 임의의 프로세스가 중지되어 재시작될 수 있다.In one embodiment, a separate reset logic device 2450 is a hardware or software reset that transitions between different computing environments, stores state when one process is interrupted, and provides isolation control to restore the state when the process is restarted. Is associated with a button or switch 2451. The reset logic device may be hard-wired or programmable and generates signals to the processor 2404 and the switch 2412 to save and restore the settings and state of the other device 2400. Control lines for device components are provided between the state storage registers 2453, the storage device 2406, the processor 2404, and the switch 2412 as needed. In some embodiments, the process in a separate computing environment can be completed so that generally only the control process can be stopped. In other embodiments, any process may be stopped and restarted.

이러한 타입의 일부 실시예들이 셀룰라 전화 등과 같은 소위 박형 계산 장치 에 특별하게 적용할 수 있다는 것이 인식될 것이다. 이러한 장치들에서는 장치의 단일 사용동안 전화 통화와 연관된 음성 처리를 조절하고 전자 이미지 또는 화상을 수신하거나 또는 달력 항목 또는 전화번호를 찾을 필요성이 존재할 수 있다. 최소 하드웨어를 사용하여 이러한 타입의 다중 프로세스들을 용이하게 수행함으로서, 장치의 비용이 감소될 수 있을 뿐만아니라 장치를 소형화시킬 수 있고 전력 소모 및 열 발생을 감소시킬 수 있다.It will be appreciated that some embodiments of this type may be particularly applicable to so-called thin computing devices such as cell phones. In such devices there may be a need to adjust the voice processing associated with a phone call and to receive electronic images or images or to find calendar items or phone numbers during a single use of the device. By easily performing multiple processes of this type using minimal hardware, the cost of the device can be reduced, as well as the device can be miniaturized and power consumption and heat generation can be reduced.

제어 및 분리 사용자 처리를 위한 시간적으로 공유된 단일 계산 환경을 가진 대안 실시예Alternative embodiment with a single, shared time computing environment for control and separate user processing

도 13에는 본 발명의 양상들에 따른 아키텍처 및 시스템(2500)에 대한 일반화된 구성이 기술되어 있다. 이러한 실시예에서, 제 1계산 환경(2501)은 데스크탑 환경, 제어환경, 기능들 및/또는 환경들의 소거/재포맷화, 스위치 또는 스위치들, 스위치 구성(들), 보호 저장장치(들), 네트워크 인터페이스들 및 접속부들 또는 카드들, 분리 레벨을 제공하거나 또는 보존하기 위하여 미리 결정되거나 또는 동적으로 결정된 능력 제한 통신 기능을 가진 ASIC들, 비디오 처리 및/또는 비디오 제어, 마우스 및 키보드 입력, 입력/출력 접속부들, 주변장치 접속 및 제어, 및 필요한 경우에 이들의 결합의 기능들을 포함하거나 또는 지원하도록 구성될 수 있다. 이러한 제 1 계산 환경(2501)은 스위치(2503)(그 자체가 제 1 계산 환경내에서 선택적으로 구성 또는 구현될 수 있음)를 통해 제 2 또는 사용자 계산 환경(2502)에 접속된다. 이러한 제 2 사용자 계산 환경은 본 발명의 용이한 실시예들에 기술된 것과 동일한 분리를 가지며, 이에 따라 바이러스, 해커, 사이버-테러, 및 우발적 또 는 의도적 공격들 또는 악성 컴퓨터 프로그램 코드에 의한 오염에 동일한 면역성을 제공한다.13 illustrates a generalized configuration for an architecture and system 2500 in accordance with aspects of the present invention. In this embodiment, the first computing environment 2501 is a desktop environment, control environment, functions and / or erasing / reformatting of the environment, switch or switches, switch configuration (s), protected storage (s), Network interfaces and connections or cards, ASICs with predetermined or dynamically determined capability-limited communication functions to provide or preserve isolation levels, video processing and / or video control, mouse and keyboard input, input / It may be configured to include or support the functions of output connections, peripheral connection and control, and combinations thereof as needed. This first computing environment 2501 is connected to a second or user computing environment 2502 via a switch 2503 (which may itself be optionally configured or implemented within the first computing environment). This second user computing environment has the same separation as described in easy embodiments of the present invention and is thus subject to contamination by viruses, hackers, cyber-terrorism, and accidental or intentional attacks or malicious computer program code. Provides the same immunity.

전형적으로, 사용자 계산 환경(2502)은 사용자 계산에 의하여 또는 제 1 제어 계산 환경(2501)을 통해 처리되어 디스플레이 장치에 의하여 디스플레이될 수 있는 비디오 출력 신호를 생성할 것이다. 그러나, 본 발명의 일부 실시예들에서 모든 계산 환경들은 개별 계산 환경이 생성되어야 하는 사용자의 인식 또는 비디오 출력 신호를 필요로하지 않는다는 것이 인식될 것이다. 예컨대, 임의의 셀룰라 전화들에서, 음성 신호들을 처리 또는 코딩 및 디코딩하기 위하여 생성된 계산 환경은 임의의 비디오 출력을 필요로하지 않고 단순히 필요한 신호들을 생성할 수 있다. 이는 단순히 출력이 데이터 세트인 상황의 일예이며, 이러한 예에서 데이터 세트는 생성되어 실시간 또는 거의 실시간으로 사용되고 저장되지 않는다. 임의의 계산 환경의 입력들 및 출력이 처리 작업에 따라 다르다는 것이 본 명세서에 기술된 상세한 설명으로부터 명백할 것이다. Typically, user computing environment 2502 will generate a video output signal that can be processed by user computing or through first control computing environment 2501 to be displayed by the display device. However, it will be appreciated that in some embodiments of the present invention all computing environments do not require a user's recognition or video output signal for which a separate computing environment should be generated. For example, in any cell phone, the computational environment created for processing or coding and decoding voice signals may simply generate the necessary signals without requiring any video output. This is merely an example of a situation where the output is a data set, in which the data set is generated and used in real time or near real time and is not stored. It will be apparent from the detailed description set forth herein that the inputs and outputs of any computing environment will vary depending on the processing task.

스위치 또는 스위칭 수단(2503)은 제어, 인터페이스, 보호 저장, 스위칭 및 시스템(2500)을 동작시키기 위한 다른 기능들을 조절하는 제 1 계산 환경(2501) 및 사용자 계산 환경(2502)사이에서 데이터(2506)(예컨대 사용자 파일 또는 문서의 사본과 같은)를 결합 또는 분리할 수 있다. 통신 라인 및 선택적 ASIC 또는 다른 로직(logic) 회로 또는 로직 수단을 포함할 수 있는 추가의 선택적 제한 통신 링크(2508)는 본 명세서 전반에 개시된 파일 저장, 계산 환경(computing environment) 소거, 메모리 소거, 저장 소거, 윈도우 및/또는 오브젯트(object) 좌표 및 식별 통 신, 마우스 좌표 통신 등과 같은 동작들을 지지하도록 제공될 수 있다. 이들 스위칭은 선택적이며 통신 경로는 지시될 수 있고 신호들(명령, 데이터, 등)의 임의의 조합이 결합 및 멀티플렉싱되거나 또는 제한된 세트의 통신 링크에 대해 통신될 수 있다. 이러한 통신 링크는 와이어들, 버스들, 광학 링크들, 또는 업계에 공지된 다른 접속 수단일 수 있다.The switch or switching means 2503 is a data 2506 between the first computing environment 2501 and the user computing environment 2502 that controls control, interface, protection storage, switching and other functions for operating the system 2500. (Such as a copy of a user file or document) can be combined or separated. Additional optional limited communication link 2508, which may include communication lines and optional ASICs or other logic circuits or logic means, includes file storage, computing environment erasing, memory erasing, and storage disclosed herein. It may be provided to support operations such as erase, window and / or object coordinates and identification communication, mouse coordinate communication, and the like. These switching are optional and the communication path can be directed and any combination of signals (command, data, etc.) can be combined and multiplexed or communicated over a limited set of communication links. Such a communication link may be wires, buses, optical links, or other connection means known in the art.

본 명세서에 개시되는 또다른 실시예로서, 통신 경로를 통과하는 데이터 또는 비트의 형태, 패턴, 또는 개수 또는 양을 필터링 또는 제한하기 위해 임의의 통신 경로에 필터들 또는 리미터들(2510)이 제공될 수 있다. 또다른 선택적으로 특정화된 전용 통신 경로 또는 링크(2526)가 다른 보편화된 공유가능 통신 경로 또는 링크로서 제공될 수 있다.As another embodiment disclosed herein, filters or limiters 2510 may be provided in any communication path to filter or limit the form, pattern, or number or amount of data or bits passing through the communication path. Can be. Another optionally specified dedicated communication path or link 2526 may be provided as another common shareable communication path or link.

PC 카드버스 또는 인터페이스 카드 실시예 및 종래의 컴퓨터PC Card Bus or Interface Card Embodiments and Conventional Computers

본 발명의 시스템, 아키텍쳐, 및 방법에 대해 개시된 몇가지 실시예로, 본 발명자들은 ISA 버스, PCI, 버스, USB 버스, SCSI 버스, PC 카드 버스 또는 다른 버스, 또는 요구되는 성능 레벨에 적합한 대역폭(bandwidth)을 제공하는 인터페이스를 통해 부착된 카드 또는 다른 회로에 적합한 본 발명의 시스템, 아키텍쳐, 및 방법에 대해 논의 했다. 유사한 방식으로 본 발명은 예를 들어, ISA, PCI, SCSI, 파이어웨어(Firewire), USB 또는 다른 버스들 또는 접속으로, 시스템 또는 주변 버스에 개조가능하게(retrofittable) 플러깅될 수 있는 임의의 카드, 칩 또는 칩 세트와 함께 사용될 수 있다.In some embodiments disclosed with respect to the systems, architectures, and methods of the present invention, the inventors of the present invention rely on an ISA bus, PCI, bus, USB bus, SCSI bus, PC card bus or other bus, or bandwidth suitable for the required level of performance. Systems, architectures, and methods of the present invention that are suitable for an attached card or other circuitry via an interface that provides In a similar manner, the present invention is directed to any card that can be retrofittable plugged into a system or peripheral bus, for example, ISA, PCI, SCSI, Firewire, USB or other buses or connections, Can be used with chips or chip sets.

PC 카드 구현은 노트북 컴퓨터 및 노트북 컴퓨터를 완전히 교체하지 않고 보안 레벨 및 안티-바이러스 및 안티-핵커(hacker) 성능을 제공하도록 개조될 수 있는 PC 카드 슬롯 또는 케이블을 갖춘 다른 정보 장치(appliance)를 허용함으로써 특히 유용한다.PC Card implementations allow notebook computers and other information devices with PC card slots or cables that can be modified to provide anti-virus and anti-hacker performance without completely replacing notebook computers. This is especially useful.

도 14를 참조로, 호스트 컴퓨터 프로세서 및 메인 프로세서 메모리와 결합되는 PC 카드의 엘리먼트가 설명된다. 전형적인 PC 카드 인터페이스에서, PC 카드는 업계에 공지된 바와 같이 카드버스 브리지에 PCI를 통해 컴퓨터의 PCI 로컬 버스를 결합시킨다. 결국 PCI 로컬 버스는 호스트-대-PCI 브리지를 통해 호스트 컴퓨터 버스에 결합된다. 이러한 호스트 버스는 호스트 컴퓨터 프로세서 또는 CPU와 결합되는 동일한 버스이다. 호스트 컴퓨터의 모든 주변부 및 호스트 프로세서로의 액세스는 본 발명의 시스템, 아키텍쳐 및 방법의 장점을 가지는 PC 카드 기반 보조 처리 시스템을 개조하는(retrofit) 방안을 제공한다.With reference to FIG. 14, elements of a PC card coupled with a host computer processor and main processor memory are described. In a typical PC card interface, the PC card couples the computer's PCI local bus via PCI to the cardbus bridge as is known in the art. Finally, the PCI local bus is coupled to the host computer bus through a host-to-PCI bridge. This host bus is the same bus that is combined with a host computer processor or CPU. Access to all peripherals and host processors of the host computer provides a way to retrofit a PC card based auxiliary processing system with the advantages of the systems, architectures and methods of the present invention.

도 14를 참조로, 본 발명의 PC 카드 버전의 개략도가 도시된다. PC 카드가 바람직하게 사용되지만, 본 발명은 다른 상이한 디바이스에서 구현될 수 있으며 노트북 컴퓨터 또는 현존하는 또는 개발될 다른 인터페이스에 의한 다른 정보 장치와 접속 또는 결합될 수 있다.Referring to Fig. 14, a schematic diagram of a PC card version of the present invention is shown. Although a PC card is preferably used, the present invention can be implemented in other different devices and can be connected or combined with other information devices by a notebook computer or other interface existing or to be developed.

PC 카드버스는 노트북 컴퓨터와 본 발명의 시스템의 회로를 결합시키는데 요구되는 모든 신호를 제공한다. 일 실시예에서, 호스트 컴퓨터의 회로는 유저(User) 인터페이스 계산 환경을 제공하는데 사용되나, 또다른 실시예에서는, 처리를 위해 PC 카드의 프로세서만이 이용된다. 일 실시예에서 호스트 컴퓨터의 하드 디스크 드라이브가 이용되지만 또다른 실시예에서는 케이블에 의해 PC 카드와 결합된 또는 PC 카드 상의 고체 상태 메모리가 이용된다. 바람직하게 컴퓨터가 다중 PC 카드 슬롯 또는 커넥터들(connectors)을 갖는 경우, 하나의 슬롯이 본 발명의 프로세서 시스템을 보유한 PC 카드에 장착 및 접속될 수 있고, 제 2 카드는 하드 디스크, 광학적, 고체 상태를 포함하는 메모리 스토어 또는 다른 메모리 저장 장치 또는 이들의 조합을 보유할 수 있다. 또한 프로세서 PC 카드 및 PC 기반 저장 디바이스 상에 저장 장치(storage)가 제공될 수 있다.The PC card bus provides all the signals required to combine the notebook computer with the circuitry of the system of the present invention. In one embodiment, the circuitry of the host computer is used to provide a user interface computing environment, while in another embodiment only the processor of the PC card is used for processing. In one embodiment, the hard disk drive of the host computer is used, while in another embodiment, a solid state memory coupled to or on a PC card by a cable is used. Preferably if the computer has multiple PC card slots or connectors, one slot can be mounted and connected to the PC card having the processor system of the present invention, the second card being a hard disk, optical, solid state It may have a memory store or other memory storage device or a combination thereof. Storage may also be provided on processor PC cards and PC-based storage devices.

도 15는 브리지 회로가 PC 로컬 버스(2605)에 결합됨으로써 PC 카드(2602)를 PC-대-카드버스 브리지(2604)를 결합시키는 일반화된 아키텍쳐(2600)를 나타낸다. 이러한 PCI 로컬 버스는 차례로 호스트 버스(2612) 및 호스트 프로세서(2614)에 액세스를 제공하는 호스트-PCI 브리지(2610)에 결합된다. 또한 DRAM과 같은 메인 메모리(2616)가 포스트-PCI 브리지(2610)를 경유하여 호스트 버스(2612)와 PCI 로컬 버스(2605)에 결합된다. 본 실시예에서 PC 카드는 본 발명의 계산 시스템을 포함하는 반면 호스트 프로세서(2614)는 종래의 노트북 또는 데스크탑 컴퓨터에 장착된 프로세서이다. ISA 또는 PCI 카드에 대해, 이들은 업계에 공지된 것처럼 ISA 로컬 버스 또는 ISA 버스에 직접 접속될 수 있다. PC 카드(2602)는 바람직하게, 저장 장치(storage), 네트워크 상호접속 카드(NIC), 모뎀, 그래픽 프로세서, 무선 통신, 및 전체 컴퓨터 시스템의 다른 장치 및 주변장치의 연산 특성을 포함할 수 있다.FIG. 15 illustrates a generalized architecture 2600 that couples the PC card 2602 to the PC-to-Cardbus bridge 2604 by coupling the bridge circuit to the PC local bus 2605. This PCI local bus is in turn coupled to a host-PCI bridge 2610 that provides access to the host bus 2612 and the host processor 2614. In addition, main memory 2616, such as DRAM, is coupled to host bus 2612 and PCI local bus 2605 via post-PCI bridge 2610. In this embodiment the PC card comprises the computing system of the present invention while the host processor 2614 is a processor mounted in a conventional notebook or desktop computer. For an ISA or PCI card, they can be connected directly to an ISA local bus or an ISA bus as is known in the art. PC card 2602 may preferably include the computing characteristics of storage, network interconnect cards (NICs), modems, graphics processors, wireless communications, and other devices and peripherals of the overall computer system.

선택적으로 또는 부가적으로, PC 카드(2602)는 카드에 이러한 장치들을 결합시키는 커넥터(connector)를 포함할 수 있다. 또다른 실시예에서, 제 2 PC 카드 (2602)는 저장 장치, 통신, 비디오 처리, 또는 다른 특징들을 강화시키기 위해 제공되며 본 발명의 처리 및 계산 환경을 포함하는 PC 카드(또는 데스트탑 형태 컴퓨터에 있는 카드내의 또다른 플러그)와 상호작용할 수 있다. 개조가능한(retrofittable) 또는 플러깅가능한 패키지에 본 발명의 계산 및 처리 환경을 제공하는 능력은 핸드폰, 오가나이저, 개인 휴대용 정보 단말기(Personal Data Assistant), 위성 전화기, 장치(appliance), 엔터테인먼트 시스템, 또는 플러그-인 카드와 같은 다양한 핸드-헬드(hand-held) 및 휴대용 장치, 또는 외부 인터페이스 능력이 있는 다른 장치 또는 시스템으로 확장될 수 있다.Alternatively or additionally, PC card 2602 may include a connector that couples such devices to the card. In another embodiment, a second PC card 2602 is provided to enhance storage, communications, video processing, or other features and includes a PC card (or desktop type computer) that includes the processing and computing environment of the present invention. And another plug in the card). The ability to provide the computing and processing environment of the present invention in a retrofittable or pluggable package may include a mobile phone, an organiser, a personal data assistant, a satellite phone, an appliance, an entertainment system, or a plug. It can be extended to various hand-held and portable devices, such as in-cards, or other devices or systems with external interface capabilities.

도 16은 제한되지는 않지만, 메모리 엘리먼트(RAM 또는 ROM)(2702), 임의의 형태의 저장 장치(마그네틱 하드 디스크 드라이브 또는 다른 저장 시스템 또는 장치(2706), 고체 상태 메모리(2708), 광학 저장 장치(2709) 등), 비디오 처리 엘리먼트(2704), 신호 처리 엘리먼트(2711), 이더넷(Ethernet) 인터페이스(2712), 네트워크 인터페이스 카드(2713) 또는 성능, 모뎀(2714), 무선 인터페이스(2715), 프로세서(2705), 스위치 또는 스위칭 엘리먼트(2730), 통신 경로, 와이어 및/또는 버스(2720), ASICS(2717) 또는 본 발명과 관련되어 개시된 다른 부품들과 같이, 개별적으로 동적으로 구성가능한 시스템 부품들을 제공하는 본 발명의 실시예(2700)를 나타낸다. 상호접속 성능만이 상기 도면에 도시되며 추가의 아키텍쳐, 토포로지, 시스템 및 방법적 설명을 제공하는 앞서 개시되고 설명된 임의의 형태의 한 실시예에 적용될 수 있다. 다이나믹 구성 또는 재구성은 동작하는 동안(다른 처리 동작이 진행중일 경우에도)의 초기화, 또는 시스템 리셋에 따라 이루어진다. 일부 실 시예에서, 할당(allocation) 테이블 또는 데이터 구조(2725)는 상이한 계산 환경에 대한 상이한 부품 및 엘리먼트의 할당을 식별하여 저장한다.16 is, but is not limited to, memory element (RAM or ROM) 2702, any form of storage device (magnetic hard disk drive or other storage system or device 2706, solid state memory 2708, optical storage device). 2709), video processing element 2704, signal processing element 2711, Ethernet interface 2712, network interface card 2713 or performance, modem 2714, wireless interface 2715, processor Individually configurable system components, such as 2705, switch or switching element 2730, communication path, wire and / or bus 2720, ASICS 2725 or other components disclosed in connection with the present invention. An embodiment 2700 of the present invention is shown. Only interconnect performance is shown in the figures and may be applied to any embodiment of any of the forms disclosed and described above that provides further architecture, topology, system and methodology. Dynamic configuration or reconfiguration takes place during initialization (even if other processing operations are in progress), or system reset. In some embodiments, an allocation table or data structure 2725 identifies and stores assignments of different parts and elements to different computing environments.

일부 또는 이들 부품들 모두의 다이나믹한 구성가능성(configurability)은 본 발명의 아키텍쳐, 시스템 및 방법의 다른 실시예들과 관련하여 이미 개시되었다. 예를 들어, 계산 환경 및 상기 계산의 부품들은 모듈러일 수 있으며, 결함 부품 또는 계산 환경을 포함하는 부품 세트가 작업 부품으로 교체 또는 수리될 때까지, 특정 결함 부품 및/또는 CSCE 또는 CCE 계산 환경과 같은 계산 환경이 제어 엔티티(entity)에 의한 서비스를 채택할 수 있도록, 동적으로 구성된다. 또한, 본 발명의 일부 실시예들은 동적으로 할당가능하고 구성가능한 중앙 처리 장치(CPU), 마이크로프로세서, 마이크로-제어기, ASIC, 또는 앞서 개시된 형태의 계산 또는 처리 환경을 형성하는 물리적 구조를 제공하는 소정의 조합을 이용할 수 있다. 또한 이러한 다이나믹 구성은 상이한 특성을 가지는 부품 또는 엘리먼트가 시스템내에서 물리적으로 이용가능할 경우 특정 처리 업무에 맞게 부품 또는 엘리먼트의 특성을 선택하는데 있어 유연성(flexibility)을 제공한다. 일부 예에서 처리 또는 계산 업무의 복잡성은 매우 빠른 프로세서 또는 대형 메모리에 대한 요구조건 또는 다른 예에서 적은 처리 전력 또는 속도 및 최소량의 메모리를 요구하는 적절한 모니터링 업무에 대한 전력 소모를 최소화시키는 요구조건과 같이 원하는 계산 환경을 지지하는 물리적 엘리먼트에서 나타난다. 이러한 선택 및 구성은 유저 제어하에서, 특히 소정의 예정된 또는 동적으로 결정된 룰 또는 원칙에 따른 계산 시스템의 자동 제어하에서 그리고 선택적이나 소정의 측정된 계산 시스템의 물리적 또는 논리적 상태에 따른, 환경 조건, 처리 리퀘스트 및 복잡성, 애플리케이션 프로그램 크기 및 데이터 설정 크기에 따라 바람직할 수 있게 호출된다. 본 발명의 또다른 실시예는 컴퓨터의 제조 시기에는 물리적으로 접속되지 않고 심지어 컴퓨터 시스템 하드웨어내에 근접하게 위치되지 않는 계산 엘리먼트로서 조립될 수 있는 개별 엘리먼트(CPU 및 저장 장치와 같은)의 다이나믹 할당을 제공한다. 일부 실시예에서, 다이나믹 하당 및 구성은 앞서 개시된 스위칭 시스템을 통해 외부 포트를 경유하여 구성되는 것처럼 외부 부품 또는 엘리먼트를 수반하고 이용한다. 일부 실시예에서, 제어 계산 환경(CSCE, CCE 또는 본 명세서에 개시된 다른 제어 계산 환경)은 주변 디바이스, 입/출력 디바이스, 및/또는 저장 디바이스에 대해 설명된 것처럼 스위치 또는 스위칭 시스템과 상호작용 및/또는 제어할 수 있어 경로 통신, 계산 시스템 엘리먼트 스위치, 및 의도된 동작을 제공하는 링크 및 접속부를 장착할 수 있다.Dynamic configurability of some or all of these components has already been disclosed with respect to other embodiments of the architecture, system and method of the present invention. For example, the calculation environment and parts of the calculation may be modular, and may be associated with a particular defective part and / or CSCE or CCE calculation environment until a defective part or a set of parts comprising the calculation environment is replaced or repaired with a work part. It is dynamically configured such that the same computing environment can adopt the service by the controlling entity. In addition, some embodiments of the present invention may provide a physical structure that forms a dynamically assignable and configurable central processing unit (CPU), microprocessor, micro-controller, ASIC, or computing or processing environment of the type previously disclosed. Can be used in combination. This dynamic configuration also provides flexibility in selecting the properties of a part or element for a particular processing task when parts or elements having different properties are physically available within the system. In some instances, the complexity of the processing or computational task may be such as the requirement for very fast processors or large memory, or in other instances the requirement to minimize power consumption for adequate monitoring tasks that require less processing power or speed and minimal amount of memory. It appears in the physical element that supports the desired computational environment. Such selection and configuration is under environmental control, processing requests, under user control, in particular under automatic control of the computing system according to certain predetermined or dynamically determined rules or principles, and depending on the physical or logical state of the optional or predetermined measured computing system. And preferably, depending on complexity, application program size, and data set size. Yet another embodiment of the present invention provides for dynamic allocation of individual elements (such as CPUs and storage devices) that can be assembled as computational elements that are not physically connected at the time of manufacture of the computer and even not located closely within the computer system hardware. do. In some embodiments, dynamic assignment and configuration involves and utilizes external components or elements as configured via external ports via the switching system disclosed above. In some embodiments, the control computing environment (CSCE, CCE or other control computing environment disclosed herein) interacts with and / or switches or switching systems as described for peripheral devices, input / output devices, and / or storage devices. Or controllable to mount path communications, computational system element switches, and links and connections that provide the intended operation.

도 16은 각각의 부품이 와이어, 와이어 세트, 버스, 또는 적절한 전기적(또는 광학적) 특성 및 의도된 통신을 지지하는 시그널링 프로토콜을 가지는 다른 통신 링크에 의해 다른 부품들과 접속되는, 단일의 개략적 "라인들"에 접속되는 상이한 형태의 부품들을 나타낸다. 이러한 적절한 특성은 종래 기술에 공지되어 있으며 본 명세서에서는 상세히 설명하지 않는다. 본 발명의 일부 실시예들은 앞서 개시된 모든 부품 및 엘리먼트들의 다이나믹 구성을 제공하지만(다른것들은 특정하게 나열되지 않음), 다른 실시예는 동적으로 또는 고정적으로 구성된 계산 환경에 상이한 데이터 저장 장치를 동적으로 구성하는 능력과 같은 보다 제한된 다이나믹한 구성가능성을 제공한다.16 is a single schematic "line" in which each component is connected with other components by a wire, wire set, bus, or other communication link having appropriate electrical (or optical) characteristics and signaling protocols supporting the intended communication. Different types of parts connected to the " Such suitable properties are known in the art and are not described in detail herein. Some embodiments of the present invention provide a dynamic configuration of all the components and elements disclosed above (others are not specifically listed), while other embodiments dynamically configure different data storage devices in a dynamically or statically configured computing environment. It provides more limited dynamic configurability, such as the ability to do so.

도 17은 다수의 계산 환경을 나타내는 실시예를 도시하며, 각각의 계산 환경은 스위치 "X"를 통해 상이한 신호 라인 또는 버스에 계산 환경 부품을 접속하는 소정 세트의 와이어 부품, 버스 또는 다른 인터페이스를 포함한다. 또한 다수의 데이터 저장 서브시스템들은 상이한 계산 환경에 의해 사용되는 전체 계산 시스템에 동적으로 할당될 수 있는 것으로 도시된다(다수의 물리적 디바이스 자체에 포함되거나 또는 상이한 로직 부분을 가질 수 있다). 일부 실시예에서, 각각의 계산 환경은 소정의 데이터 저장 부품들을 포함할 수 있고 동적으로 할당가능하거나 또는 스위칭가능한 데이터 저장 장치는 저장 장치 또는 처리 업무(예를 들어 일시적 저장 포함)에 대해 요구되는 저장 능력이 한정된 계산 환경내에서 이용가능한 저장량을 초과할 때 추가의 저장 능력을 나타낸다.FIG. 17 illustrates an embodiment representing multiple computing environments, each computing environment comprising a set of wire components, buses, or other interfaces that connect the computing environment components to different signal lines or buses via a switch "X". do. It is also shown that multiple data storage subsystems can be dynamically allocated to the entire computing system used by different computing environments (which can be included in multiple physical devices themselves or have different logic portions). In some embodiments, each computing environment may include certain data storage components and a dynamically assignable or switchable data storage device requires storage for storage or processing tasks (including, for example, temporary storage). Additional storage capacity is indicated when the capacity exceeds the amount of storage available within the limited computing environment.

도 18은 본 발명의 계산 환경(2801)이 본 발명의 계산 시스템 또는 전체 계산 환경(2801) 내에서 분리된 계산 환경의(ICE's) 분리된 "세트들", 및 비디오 통신 신호 링크(2806)을 통해 레이어드(layered) 비디오의 조합된 다중 개별 "세트들"과 키보드 통신 라인 또는 링크(2807)(전기적 케이블 또는 무선 링크) 및 마우스 통신 라인 또는 링크(2808)을 통해 다수의 키보드들(2803) 및 마우스들(2804)(또는 다른 입력 또는 포인팅 디바이스)을 어떻게 결합시킬 수 있는지를 나타낸다. 출력은 단일 제어기 또는 제어 환경의 제어하에서 보다는, 서로 분리되고 독립적으로 수행되는 독립적 '노드들'(2802-1, .... 2802-N)을 형성하기 위해 단일 모니터 또는 개별 모니터(2805)로 전송될 수 있다.18 illustrates a computational environment 2801 of the present invention that separates ICE's separate " sets " of the computational system or the entire computational environment 2801 of the present invention, and the video communication signal link 2806. A combination of multiple discrete "sets" of layered video via keyboard communication line or link 2807 (electrical cable or wireless link) and mouse communication line or link 2808 through multiple keyboards 2803 and It shows how the mice 2804 (or other input or pointing device) can be combined. The output is directed to a single monitor or individual monitors 2805 to form independent 'nodes' 2802-1, 2802-N, which are separated from each other and performed independently, rather than under the control of a single controller or control environment. Can be sent.

동적으로 구성된 다수의 가상 계산 또는 처리 환경을 포함하는 실시예 Embodiments Including Multiple Dynamically Configured Virtual Computing or Processing Environments

(ⅰ) 유저 인터페이스, 제어 & 스위칭, 및 보호된 저장 장치 계산 환경의 펑크션이 조합되고(도 9 및 도 10의 실시예 및 이들에 대한 설명 참조); (ⅱ) 시스템 부품들이 동적으로 구성가능하고(도 10 의 실시예 및 이들에 대한 설명 참조); (ⅲ) 제어 및 분리된(isolated) 유저 처리에 대한 단일의 일시적 분리된 계산 환경이 있고(도 12의 실시예 및 이들에 대한 설명 참조); (ⅳ) 제어 및 분리된 유저 처리에 대한 단일의 일시적 공유된 계산 환경이 있고(도 13의 실시예 및 이들에 대한 설명 참조); (ⅴ) PC 카드버스 또는 다른 인터페이스 카드 실시예 및 종래의 컴퓨터가 있고(도 14 및 도 15 및 이들에 대한 설명 참조); (ⅵ) 시스템이 계산 업무 또는 다른 베이시스(basis)에 따라 계산 환경을 한정하는 개별적으로 동적으로 구성가능한 시스템 부품을 포함하며; (ⅶ) 각각 소정 세트의 부품 및 와이어, 버스 또는 스위치 또는 멀티플렉서(즉, 조절된 스위치 세트)를 경유하여 상이한 신호 라인 또는 버스와 계산 환경 부품을 접속하는 다른 인터페이스를 가지는 다수의 계산 환경이 한정되거나 구성되는, 실시예들을 포함하는, 본 발명의 다양한 실시예들이 개시된다. 본 발명의 다른 실시예들 또한 개시되며 이들 리스트는 본 명세서에서 모든 실시예를 식별하기 위한 것이기 보다는 다른 실시예들을 구별하는 베이시스를 설정하기 위한 것으로, 가상 처리 공간 및 가상 처리 환경으로 간주된다.(Iii) the functions of the user interface, control & switching, and protected storage computing environment are combined (see the embodiments of FIGS. 9 and 10 and descriptions thereof); (Ii) system components are dynamically configurable (see the embodiment of FIG. 10 and description thereof); (Iii) there is a single, temporary separate computing environment for controlled and isolated user processing (see the embodiment of FIG. 12 and descriptions thereof); (Iii) there is a single temporary shared computing environment for controlled and separate user processing (see the embodiment of FIG. 13 and the description thereof); (Iii) there is a PC CardBus or other interface card embodiment and a conventional computer (see FIGS. 14 and 15 and their descriptions); (Iii) the system includes individually dynamically configurable system components that define the computing environment in accordance with the computing task or other basis; (Iii) a number of computing environments are defined, each having a different set of components and different interfaces for connecting different signal lines or buses and computing environment components via a predetermined set of components and wires, buses or switches, or multiplexers (ie, regulated sets of switches), or Various embodiments of the invention are disclosed, including embodiments, which are configured. Other embodiments of the present invention are also disclosed and these lists are intended to establish a basis for distinguishing other embodiments, rather than identifying all embodiments herein, and are considered virtual processing spaces and virtual processing environments.

하기 개시되는 것처럼, 본 실시예는 다중-치수의 가상 처리 공간에서 임의의 치수 세트로 일시적 멀티플렉싱(시간 또는 일시적 치수)의 확대와 함께 (선택, 할 당 및 스위칭의 면들을 포함하는) 물리적 시스템 부품의 다이나믹 구성을 통합한다. 또한 실시예들은 PCI 카드 슬롯 도터 보드(card slot daughter boards)와 같이 다른 플러그-인 카드 또는 모듈을 포함하는 실시예들로 PC 카드 버스 또는 다른 인터페이스의 개념 및 다이나믹 구성가능성, 마더-보드 칩 세트 교체 또는 추가, 및 (인텔, 어드밴스드 마이크로 디바이스, 모토롤라 등의 형태와 같은) 종래의 마이크로프로세서의 프로세서 및 머더보드로 플러깅(또는 정합)될 수 있는 본 발명의 인터페이스와 같은 종래의 부품들 사이에 삽입될 수 있는 인터페이스의 개념으로 확대될 수도 있다. 또한, 플러그-인 카드 및 인터페이스의 개념이 조합될 수 있다. 가상 처리 또는 계산 공간 및 가상 처리 또는 계산 환경의 실시예가 보다 상세히 설명된다.As disclosed below, this embodiment is a physical system component (including aspects of selection, assignment and switching) with the expansion of temporal multiplexing (time or temporal dimensions) to any set of dimensions in a multi-dimensional virtual processing space. Integrate the dynamic configuration of the Embodiments also include other plug-in cards or modules, such as PCI card slot daughter boards, to replace the concept and dynamic configurability of a PC card bus or other interface, motherboard chip set replacement. Or in addition, and between conventional components, such as the interface of the present invention, which may be plugged (or matched) into the processor and motherboard of a conventional microprocessor (such as in the form of Intel, Advanced Micro Devices, Motorola, etc.). It may be extended to the concept of an interface that can be. In addition, the concepts of plug-in cards and interfaces may be combined. Embodiments of a virtual processing or computing space and a virtual processing or computing environment are described in more detail.

다수의 멀티플렉시블 가상 처리 환경들(VPEs)을 포함하는 다중-치수 가상 처리 공간(VPS)의 Of multi-dimension virtual processing space (VPS) including multiple multiplexed virtual processing environments (VPEs) 실시예Example

본 실시예 및 앞서 개시된 실시예들은 바이러스, 핵커 및 각각의 프로세스가 가상 처리 공간이 존재하거나 또는 존재할 수 있는 프로세스를 서로 분리상태로 유지되는 다른 악성 코드 유해 환경을 제공한다. 외부 및 잠재적으로 오염된 소스로부터의 프로세스 입력은 이전의 프로세스에 의해 유도될 수 있는 임의의 오염이 제거될 수 있도록, 새로운 프로세스를 허용하기 이전에 인지하고 신뢰하고 있는 상태로 정화, 해체, 또는 리셋되는 가상 처리 공간 내에서 분리된 처리 환경으로 입력 분리기(input isolator)를 통해 처리된다. 다음 처리 환경은 수신된 외부 프로세 스를 처리 또는 실행하고 완료시 출력 분리기를 통해, 상기 결과를 수신하도록 구성된 다른 프로세서 또는 요청 프로세서와 같은 외부 세계로 프로세스 결과 또는 출력을 보낸다. 입력 및 출력 분리기는 동일한 물리적 분리기이거나 또는 상이할 수 있으며, 상이한 분리기 사용의 장점은 이들을 조절할 수 있고 진입하는 프로세스가 출력(outgoing) 프로세스와 부분적으로 일시적 중첩된다는 것이다. 처리 환경이 바이러스 또는 다른 유해 또는 손상 코드(심지어 데이터로 위장된 코드)의 실행 또는 실행 시도와 같은 처리 동안 문제점을 검출하는 경우, 프로세스는 외부 세계와 통신하지 않고 외부 프로세스 결과를 플러쉬(flush)할 수 있다. 그러나, 바이러스 또는 다른 유해 코드가 실행될 경우라도, 처리 환경은 정화, 제거, 리셋 또는 인지하고 신뢰된 상태로 다시 복구된다. 일 실시예에서, 인지하고 신뢰된 상태는 신뢰된 템플릿(template) 또는 처리 업무 동안 처리 환경으로부터 분리 상태를 유지하는 다른 보호된 저장 장치로로부터 선택적으로 재저장된다(내장형 템플릿을 포함하는 본 발명의 실시예는 상기 제거 또는 재저장이 필요없다). 신뢰된 템플릿은 동작 시스템, 애플리케이션 프로그램, 시스템 파라미터 등을 재장착하는 소스이다. 일 실시예에서, 분리(isolation)는 판독 전용 메모리에서 신뢰된 템플릿을 제공함으로써 제공된다. 일 실시예에서, 입력으로부터 프로세서로 그리고 프로세서로부터 출력으로의 분리상태는 단지 비트 또는 비트 스트림 복사 또는 전송 동작만을 수행하며 바이러스성 또는 다른 유해 코드를 실행할 수 없거나 또는 다른 동작을 수행하도록 변형될 수 없는 하드웨어 회로에 의해 제공된다. 2개의 처리 환경 및 2개의 외부 프로세스에 대한 처리 환경 분리상태 방식의 실시예가 도 19에 도시된다.This embodiment and the embodiments disclosed above provide other malware harmful environments in which viruses, hackers, and each process remain separate from each other, or where virtual processing space may or may not exist. Process input from external and potentially contaminated sources is cleaned, dismantled, or reset to a known and trusted state before allowing a new process so that any contamination that may be induced by the previous process can be removed. It is processed through an input isolator as a separate processing environment within a virtual processing space. The processing environment then processes or executes the received external process and, upon completion, sends the process result or output to an external world, such as another processor or requesting processor, configured to receive the result via an output separator. The input and output separators may be the same physical separators or may be different, and the advantage of using different separators is that they can be adjusted and that the entering process partially overlaps with the outgoing process. If the processing environment detects a problem during processing, such as the execution or attempt to run a virus or other harmful or corrupt code (even code disguised as data), the process will not communicate with the outside world and flush the external process results. Can be. However, even when a virus or other harmful code is executed, the processing environment is cleaned, removed, reset or restored to a recognized and trusted state. In one embodiment, the recognized and trusted state is selectively restored from a trusted template or other protected storage device that is kept separate from the processing environment during processing tasks (including embedded templates of the present invention). The embodiment does not require the removal or resave). Trusted templates are a source for reloading operating systems, application programs, system parameters, and so on. In one embodiment, isolation is provided by providing a trusted template in read-only memory. In one embodiment, the separation from input to processor and from processor to output only performs bit or bit stream copy or transfer operations and cannot execute viral or other harmful code or be modified to perform other operations. Provided by hardware circuitry. An embodiment of a processing environment segregation scheme for two processing environments and two external processes is shown in FIG. 19.

멀티-처리 환경 분리의 양상들이 개시되며, 단일 처리 또는 계산 환경, 멀티-계산 환경, 및 일시적으로 멀티플렉싱된 계산 환경에 대한 또다른 실시예의 설명은 이미 개시되었다. 분리상태를 어떻게 유지하는지에 대한 설명은 본 실시예에서 적용가능하며, 적어도 이들 특징 중 일부를 통합하는 다중-치수 처리 공간에 대해 논의된다.Aspects of multi-process environment separation are disclosed, and a description of another embodiment of a single processing or computing environment, a multi-computing environment, and a temporarily multiplexed computing environment has already been disclosed. The description of how to maintain the separation state is applicable in the present embodiment, and discusses a multi-dimension processing space incorporating at least some of these features.

도 20을 참조로, 적어도 하나, 그러나 통상적으로 다수의 또는 다중의 프로세스를 실행하거나 처리하는 다차원 가상 처리 공간의 실시예가 도시된다. 따라서 가상 처리 공간은 1차원, 2차원, 3차원, 4차원 또는 N-차원일 수 있으며, 여기서 N은 임의의 양의 정수이다. 원칙적으로 N은 제한되지 않고 임의의 양의 정수일 수 있지만, 하나 또는 다수의 물리적 하드웨어 엘리먼트(예를 들어 로직 회로, 마이크로프로세서, 마이크로제어기, 메모리 엘리먼트 및 처리 또는 계산 하드웨어 등)상에서 제한된 시간 주기(또는 다른 동작적 제한) 내에서 다수의 가상 처리 환경을 구성하고, 할당하고, 제어하고 및/또는 작동시키는 실행가능성으로 인해, 실제로, 가상 처리 환경의 수는 예를 들어 1 내지 10000 사이의 임의의 특정한 정수와 같이 1000 미만의 수, 또는 100 미만, 또는 10 미만, 또는 2, 3, 4, 5, 6, 7, 8, 9 또는 10 이하의 수로 제한될 수 있다.With reference to FIG. 20, an embodiment of a multidimensional virtual processing space for executing or processing at least one, but typically multiple or multiple processes is shown. Thus, the virtual processing space can be one, two, three, four or N-dimensional, where N is any positive integer. In principle, N is not limited and can be any positive integer, but a limited time period (or logic circuit, microprocessor, microcontroller, memory element and processing or computing hardware, etc.) on one or many physical hardware elements (or Due to the feasibility of configuring, assigning, controlling and / or operating multiple virtual processing environments within other operational limitations, in practice, the number of virtual processing environments may be any particular number between 1 and 10000, for example. Such as an integer, may be limited to numbers less than 1000, or less than 100, or less than 10, or less than 2, 3, 4, 5, 6, 7, 8, 9 or 10.

3차원 이상의 가상 처리 공간의 구조 및 동작을 설명하는데 관련된 복잡성 때문에, 본 명세서에서는 3차원의 예시적인 처리 공간에 대해 설명한다. 본 명세서에서 사용되는 "가상(virtual)"이란 용어는 다중-치수 처리 공간이 그 각각에 따 라 1차원 또는 3차원 중 하나로 논의되는 단일의 물리적 프로세서내에서 형성될 수 있기 때문에, 적어도 부분적으로 사용된다. 심지어 프로세서 이벤트의 시간-기준 또는 일시적 시퀀스가 고려되는 경우라도, 차원(dimensionality)은 2차원(프로세서 공간 치스 플러스 시간) 또는 4 차원(3개의 프로세서 공간 치수 플러스 시간)중 하나로서 고려될 수 있다. 다수의 프로세서가 구성될 때, 차원 추가로 연장 또는 멀티플렉싱될 수 있다. 사실 본 발명의 구조, 디바이스 및 방법은 N-차원 가상 처리 공간이 물리적 프로세서의 N 수 및 시간 보다 작게 생성되도록 보다 큰 차원을 제공한다.Because of the complexity involved in describing the structure and operation of three or more virtual processing spaces, an exemplary processing space in three dimensions is described herein. As used herein, the term "virtual" is used at least in part because multi-dimension processing spaces may be formed within a single physical processor that is discussed in either one or three dimensions, depending on their respective dimensions. do. Even if the time-based or temporal sequence of processor events is considered, dimensionality can be considered as either two dimensions (processor space chess plus time) or four dimensions (three processor space dimensions plus time). When multiple processors are configured, they can be further extended or multiplexed. In fact, the structures, devices and methods of the present invention provide a larger dimension such that the N-dimensional virtual processing space is created less than the N number and time of physical processors.

도 20의 실시예는 "프로세서 수"(또는 프로세서 수), "처리 시간 세그먼트"(하나 또는 프로세서 클록 사이클 또는 다른 시간 간격의 수집으로 해석될 수 있다), 및 "프로세스 타입"(일 실시예에서 물리적 프로세서 중 하나 내에서 자원 또는 자원 세트와 관련되어 해석될 수 있다)의 치수들을 포함한다. 도 20에 개시된 프로세서 타입은 제한되지 않지만, 예를 들어, 제한, 플로핑-포인트 동작, 그래픽 렌더링 동작, 통신 동작, 및 계산, 정보 처리, 신호 처리, 통신, 게임(gaming), 애니메이션, 음성 처리, 디지털 신호 처리, 및 임의의 다른 명령, 코드, 또는 계산 또는 정보 처리 기술에서 공지된 동작 형태와 관련된 상이한 동작 형태의 임의의 다른 미레드(mired)를 포함한다.The embodiment of FIG. 20 shows "number of processors" (or number of processors), "processing time segment" (which may be interpreted as collection of one or processor clock cycles or other time intervals), and "process type" (in one embodiment). Dimensions of a resource) that can be interpreted in relation to a resource or set of resources within one of the physical processors. The processor type disclosed in FIG. 20 is not limited, but may be, for example, limited, floating-point operation, graphics rendering operation, communication operation, and computation, information processing, signal processing, communication, gaming, animation, speech processing. , Digital signal processing, and any other instruction, code, or any other mired of different operating forms associated with known forms of operation in computational or information processing techniques.

특정화된 프로세서들은 통합되는 종래의 프로세서의 엘리먼트들을 구별하는 본 발명에 따라 제공되거나 또는 특정화된 프로세서들은 하나의 형태의 처리 동작을 위해 사용되지 않는 엘리먼트들이 공통 또는 부분적으로 중첩되는 시간 주기 동 안 다른 동작들에 대해 이용가능하도록, 프로세서 엘리먼트들을 개별적으로 액세스하거나 어드레스가능하게 제공될 수 있다. 또한 본 발명은 프로세서 엘리먼트의 복사 또는 다수의 인스턴시에이션(instantiation)이 프로세서내의 모든 구조무롸 중복되지 않도록 단일 프로세서내에 제공되도록 제공된다. 도 20의 실시예에서, 5개의 가상 처리 환경은 예시적인 가상 처리 환경 및 멀티플렉싱된 분리상태 또는 개별 파라미터를 나타내는 하기의 표 1에 개시된 것처럼 가상 제품 공간내에 한정된다.Specified processors are provided in accordance with the present invention that distinguish elements of a conventional processor to be integrated, or specified processors may perform other operations during a period of time in which elements that are not used for one form of processing operation are commonly or partially overlapped. Processor elements may be individually accessed or provided addressable. The invention also provides that a copy or multiple instances of processor elements are provided in a single processor such that all structures within the processor do not overlap. In the embodiment of FIG. 20, five virtual processing environments are defined within the virtual product space, as described in Table 1 below, which illustrates an exemplary virtual processing environment and multiplexed separate states or individual parameters.

가상 처리 공간에 의해 제공되는 예는 로직 회로가 전기적 시스템내의 순차적 회로에 제공되도록 입력 신호를 선택할 경우처럼, 멀티플렉서의 단일 출력으로서 멀티플렉서의 다수의 입력중 하나를 선택하는데 사용되는 멀티플렉싱 동작으로 분석될 수 있다.An example provided by the virtual processing space can be analyzed with the multiplexing operation used to select one of the multiple inputs of the multiplexer as a single output of the multiplexer, such as when selecting an input signal such that the logic circuit is provided to a sequential circuit in the electrical system. have.

표 1. 예시적인 가상 처리 환경들 및 멀티플렉싱된 분리 또는 분리 파라미터Table 1. Example Virtual Processing Environments and Multiplexed Separation or Separation Parameters

프로세스process 다른 프로세스들과의 분리 및 분리를 제공하는 멀티플렉싱된 파라미터Multiplexed parameters provide separation and separation from other processes 프로세스 또는 수Process or number 프로세스/명령 타입Process / command type 시간 세그먼트Time segment 기타Etc 1One 1One 플로팅 포인트 동작Floating Point Behavior 5050 ...... 22 1One 플로팅 포인트 동작Floating Point Behavior 7070 ...... 33 1One 통신 동작Communication operation 5050 ...... 44 22 플로팅 포인트 동작Floating Point Behavior 5050 ...... 55 1One 그래픽 렌더링 동작Graphic rendering behavior 100100 ......

본 발명의 시스템, 디바이스 및 방법에서, 외부 프로세서(또는 그를 한정하는 지시, 명령, 및 데이터)는 가상 프로세서 공간 내에서 (가상 처리 환경으로 간주되는) 특정 자원 세트로 선택적으로 라우팅 또는 멀티프렉싱된다. 가상 처리 환경은 물리적 또는 논리적 스위치, 스위칭 엘리먼트 세트, 또는 스위치들 똔 스위칭 엘리먼트 세트(예를 들어, 멀티플렉서 또는 멀티플렉싱 세트)로 한정될 수 있다.In the systems, devices, and methods of the present invention, external processors (or instructions, instructions, and data defining them) are selectively routed or multiplexed to a specific set of resources (referred to as a virtual processing environment) within the virtual processor space. . The virtual processing environment may be limited to physical or logical switches, switching element sets, or switches and switching element sets (eg, multiplexers or multiplexing sets).

도 20은 N-차원 가상 처리 공간(2950)이 VPE1(2951), VPE2(2952), VPE3(2953) 및 VPE4(2954)를 포함하는 다수의 가상 처리 또는 계산 환경을 한정하는 실시예를 나타낸다. 이들 가상 처리 또는 계산 환경의 일부는 물리적 처리 또는 계산 환경에 대응할 수도 있다. 가상 처리 공간(VPS) 및 가상 프로세서 환경(VPE) 구성, 할당, 및 제어 유니트(CACU)(2960)는 예를 들어, 프로세서(들), 메모리, 캐쉬, I/O 비다이스, 키보드, 디스플레이, CD ROM, 및 요구되는 임의의 다른 부품들 또는 주변기기와 같은 물리적 처리 자원을 구성할 수 있다. 본 실시예에서, VPS(2950)는 물리적 프로세서 식별 치수 축(2955), 처리 시간 세그먼트 치수 축(2956), 및 명령 또는 프로세스 타입 치수 축(2957)에 따라 한정된다. 본 실시예에서, 식별된 명령 또는 프로세스 타입은 플로팅-포인트 타입, 그래픽 렌더링 타입, 및 통신 타입이다. 다른 타입들도 식별될 수 있다. 일 실시예에서, 명령 또는 프로세스 타입이 식별되고 처리 시스템 자원의 다양한 면들에 이용될 수 있다. 또한, 도 16 및 도 17에서 동적으로 구성가능하고 스위치가능한 부품들과 관련하여 개시된 것처럼, 처리 시스템은 요구되는 구성가능한 자원 세트를 제공할 수 있으며, 이들 물리적 엘리먼트들은 특정 프로세스에 할당될 수 있다. 특정 가상 처리 실시예를 한정하는 능력은 물리적 처리 자원에 따라 제한될 수 있으며, 원하는 가상(또는 물리적) 처리 또는 계산 환경을 지지하는 물리적 처리 공간을 제한하는 능력은 물리적 자원 존재와 관련될 수 있다. 물리적 자원 확장과 같은 변형은 VPS의 차수의 확장을 허용한다. 리던던트 자원이 특정 구성에 제공되는 경우, VPS(2950) 는 특정 VPE의 복사 또는 다수의 인스턴시에이션을 제공할 수 있다.20 illustrates an embodiment in which the N-dimensional virtual processing space 2950 defines a number of virtual processing or computing environments including VPE1 2951, VPE2 2952, VPE3 2953, and VPE4 2954. Some of these virtual processing or computing environments may correspond to physical processing or computing environments. Virtual Processing Space (VPS) and Virtual Processor Environment (VPE) Configuration, Allocation, and Control Unit (CACU) 2960 may include, for example, processor (s), memory, cache, I / O devices, keyboards, displays, Physical processing resources such as CD ROM, and any other components or peripherals required may be configured. In this embodiment, the VPS 2950 is defined in accordance with the physical processor identification dimension axis 2955, the processing time segment dimension axis 2956, and the instruction or process type dimension axis 2955. In this embodiment, the identified instruction or process type is a floating-point type, a graphics rendering type, and a communication type. Other types can also be identified. In one embodiment, an instruction or process type may be identified and used for various aspects of processing system resources. Further, as disclosed in connection with the dynamically configurable and switchable components in FIGS. 16 and 17, the processing system can provide the required set of configurable resources, and these physical elements can be assigned to a particular process. The ability to define a particular virtual processing embodiment may be limited depending on the physical processing resources, and the ability to limit the physical processing space supporting the desired virtual (or physical) processing or computing environment may be related to the physical resource presence. Variants such as physical resource expansion allow for an extension of the order of the VPS. If redundant resources are provided in a particular configuration, VPS 2950 may provide a copy or multiple instances of a particular VPE.

또한 CACU(2960)이 인식된 정화 및 펑크션 버전 및 임의의 동작 시스템, 프로그램 애플리케이션, 드라이버 소프트웨어, 시스템 또는 프로그램 파라미터 및 데이터, 또는 특정 처리 동작을 조절하는데 요구되거나 요구될 수 있는 다른 소프트웨어 엘리먼트를 저장 또는 생성하는 신뢰된 템플릿 소스(2958)와 통신되어 제어된다. 템플릿을 변경 또는 오염으로부터 보호하고 처리 코드의 신뢰된 소스로서 사용하는 방식 및 명령은 본 명세서 및 참조 문헌으로서 통합된 관련 특허 출원의 명세서 전반에 개시되어 여기서는 반복하지 않는다.It also stores the recognized purification and function versions and any operating system, program application, driver software, system or program parameters and data, or other software elements that may or may be required to adjust a particular processing operation. Or in communication with a trusted template source 2958 that generates. The manners and instructions for protecting a template from alteration or contamination and using it as a trusted source of processing code are disclosed throughout the specification of the relevant patent application incorporated herein and by reference and are not repeated herein.

분리된 저장 장치 할당 제어 로직(2962)은 특정 분리된 저장 장치 고정(isolated storage lock)(ISL)(2943)(예를 들어, ISL1(2944-1), ISL2(2944-2),..., PK(2942-K))를 프로세스 유니트(2941)(프로세서 입력 P1(2942-1), P2(2942-2),....,PK(2942-K))에 접속시킬 수 있다. 분리된 저장 장치 할당 제어기(2962)는 가능 접속부의 웨브(web) 또는 패브릭의 접속을 전환시키도록 동작하여, 특정 프로세스는 이용가능한 ISL(2943)에 배타적으로 라우팅되고 접속된다. 이들 ISL은 물리적 자원와 접속되는 적절한 가상 처리 환경에 접속된다. 입력 분리(또는 입력 ISL)을 통한 프로세서(VPE의 물리적 표현과 같은)와 프로세스 입력 접속 출력 분리(또는 출력 ISL)을 통한 프로세서 출력과 관련된 동작이 도 21의 방법을 참조로 개시된다. 또한 다이나믹한 스위칭 및 구성을 위한 동작이 개시되며 여기서는 반복되지 않는다. 입력 프로세스들중에서 ISL의 다이나믹 할당은 요구되지 않으며 고 정될 수 있으나, 이러한 다이나믹 구성 및 할당은 상기 다이나믹 구성 및 할당 제공과 같은 추가의 유연성(flexibility)에 있어 바람직하다. Isolated storage allocation control logic 2962 may be configured to provide a particular isolated storage lock (ISL) 2943 (eg, ISL 1 2944-1, ISL 2 2944-2). .., P K (2942-K) to the process unit 2941 (processor inputs P 1 (2942-1), P 2 (2942-2), ...., P K (2942-K)) You can connect. The separate storage allocation controller 2962 operates to switch the connection of the web or fabric of the possible connections so that a particular process is exclusively routed and connected to the available ISL 2943. These ISLs are connected to the appropriate virtual processing environment that is in contact with the physical resources. Operation related to processor output via input separation (or input ISL) (such as a physical representation of a VPE) and processor input connection output separation (or output ISL) is described with reference to the method of FIG. 21. Also disclosed are operations for dynamic switching and configuration and are not repeated here. Dynamic input of the ISL is not required and can be fixed among the input processes, but such dynamic configuration and assignment is desirable for further flexibility such as providing the dynamic configuration and assignment.

3차원 가상 처리 스페이스는 도 20의 실시예에서의 프로세서 수, 시간 세그먼트 및 프로세스 타입에 대해 개시되었지만, 차수는 3차원만으로 제한되지 않는다. 예를 들어, 적절하게 구성된 물리적 구조, 명령 세트 및 포맷, 데이터 세트 및 포맷, 차수는 다른 처리 파라미터, 변수, 조건 등으로 확장될 수 있다. 또한, 지금까지의 설명은 퍼스널 컴퓨터, 노트북 컴퓨터, 서버, 루터, 퍼스널 정보 디바이스, 개인 정보 단말기, 정보 장치, 셀률러 텔레폰, 텔레비젼, 홈 장치, 자동차 전기, 산업적 제어 및 자동화, 로봇, 항공 제어 및 다른 계산 및 정보 처리 시스템 및 디바이스에 현재 공통적으로 사용되는 디지털 계산에 관련되었지만, 본 발명은 이에 제한되지 않는다. 예를 들어, 본 발명은 아날로그 계산 및 신호 처리 뿐만 아니라 디지털 계산 및 데이터 처리, 및 하이브리드 디지털-아날로그 디바이스 및 시스템에도 적용될 수 있다. 또한 본 발명은 주파수, 파장, 전파 모드, 및 다른 광학적 디바이스 및 시스템 파라미터와 같은 추가의 치수들이 선택되고 멀티플렉싱될 수 있는 광학 계산에도 적용될 수 있다. 광학, 디지털, 및/또는 아날로그 엘리먼트는 그내부에 한정된 다수의 가상 처리 환경 및 가상 처리 공간의 제어 및 구성 및 할당이 가능하도록 임의로 조합될 수 있다. 구성, 할당 및 제어는 동작 방식에 따른 동작 동안 제어 엘리먼트에 의한 다이나믹 설정 또는 프로그래밍 동작에 의해 제조, 설정될 때 고정될 수 있다.A three dimensional virtual processing space has been disclosed for the number of processors, time segments and process types in the embodiment of FIG. 20, but the order is not limited to only three dimensions. For example, properly configured physical structures, instruction sets and formats, data sets and formats, orders can be extended to other processing parameters, variables, conditions, and the like. In addition, the description so far is a personal computer, a notebook computer, a server, a router, a personal information device, a personal digital assistant, an information device, a cellular telephone, a TV, a home device, automotive electrical, industrial control and automation, a robot, aviation control and Although related to digital calculations currently commonly used in other calculations and information processing systems and devices, the present invention is not so limited. For example, the present invention can be applied to digital calculations and data processing as well as analog calculations and signal processing, and hybrid digital-analog devices and systems. The invention is also applicable to optical calculations in which additional dimensions such as frequency, wavelength, propagation mode, and other optical device and system parameters can be selected and multiplexed. Optical, digital, and / or analog elements may be arbitrarily combined to enable control, configuration, and allocation of a number of virtual processing environments and virtual processing spaces defined therein. Configuration, assignment and control may be fixed when manufactured and set by dynamic setting or programming operation by the control element during operation in accordance with the manner of operation.

본 발명의 시스템, 디바이스 및 방법의 실시예들은 임의의 다양한 형태의 스 위칭, 상호접속, 멀티플렉싱, 선택, 구성 및/또는 멀티플렉싱을 사용하여, 처리될 업무에 대해 요구되는 구조를 달성할 수 있고, 단일 처리 시스템내에 구조 및 과정에 적합하게 동시적으로 상이한 형태가 사용될 수 있다. 다양한 스위치, 및 스위칭 및 제어 방식(scheme) 및 방법이 또다른 실시예와 관련하여 사용될 수 있고, 이들 방식 및 방법은 상기 실시예들에도 사용될 수 있다.Embodiments of the systems, devices, and methods of the present invention may use any of various forms of switching, interconnection, multiplexing, selection, configuration, and / or multiplexing to achieve the required structure for the task to be processed, Different forms may be used simultaneously in a single treatment system to suit the structure and procedure. Various switches and switching and control schemes and methods may be used in conjunction with other embodiments, and these methods and methods may also be used in the above embodiments.

다양한 형태 또는 타입의 멀티플렉싱은 업계에 공지되어 있으며 다른 형태 및 타입은 앞으로 개발될 것이며, 임의의 또는 이들 모두는 본 발명의 시스템, 디바이스, 및 방법과 관련하여 사용될 수 있을 것이다. 하기의 리스트는 제한되지 않지만, 예시적인 방법들을 나타낸다: 어드레스 멀티플렉싱, 버스트 시간 분할 멀티플렉싱, 코드-분할 멀티플렉싱, 디멀티플렉싱, 차동(differential) 멀티플렉싱, 분리된 멀티플렉싱, 멀티-유저 멀티플렉싱, 멀티-유저 공간 멀티플렉싱, 직교 주파수 분할 멀티플렉싱, 분극 분할 멀티플렉싱, 공간-분할 멀티플렉싱, 공간 멀티플렉싱, 서브캐리어 멀티플렉싱, 통계적 멀티플렉싱, 시간 분할 멀티플렉싱, 파장 분할 멀티플렉싱, 보안 가상화(virtualization), 개별 또는 보안 처리 또는 계산 환경 방법, 및/또는 임의의 다른 기술, 과정, 또는 정보 분할 또는 멀티플렉싱, 데이터 또는 컴퓨터 처리 방법. 또한 상기 멀티플렉싱 방식, 가상화 방식, 또는 분할 방식중 임의의 하나 또는 임의의 조합이 이용될 수도 있다.Multiple forms or types of multiplexing are known in the art and other forms and types will be developed in the future, any or all of which may be used in connection with the systems, devices, and methods of the present invention. The following list shows, but is not limited to, exemplary methods: address multiplexing, burst time division multiplexing, code-division multiplexing, demultiplexing, differential multiplexing, separate multiplexing, multi-user multiplexing, multi-user spatial multiplexing , Orthogonal frequency division multiplexing, polarization division multiplexing, space-division multiplexing, spatial multiplexing, subcarrier multiplexing, statistical multiplexing, time division multiplexing, wavelength division multiplexing, secure virtualization, individual or secure processing or computational environment methods, and // Or any other technique, process, or method of data segmentation or multiplexing, data, or computer processing. In addition, any one or any combination of the multiplexing method, the virtualization method, or the partitioning method may be used.

가상 처리 공간(VPS) 및 다수의 가상 처리 또는 계산 환경의 실시예가 개시되며, 이제 가상 처리 공간내에서 각각의 가상 처리 환경을 동작시키는 프로세스 및 방법에 대해 논의한다. 단계 순서는 예시적인 것이며 등가 또는 유사한 결과를 달성하기 위해 상이한 순서가 사용될 수도 있으며 소정의 단계들은 자원와 관련하여 충돌이 발생하지 않게 독립적으로(in parallel) 수행될 수 있다. 프로세스(2970)에서 각각의 주요 단계가 열거되며 각각의 주요 단계내의 예시적인 하위 단계들은 문자로 표시된다. 방법 실시예들은 도 21의 흐름도에 도시된다.Embodiments of a virtual processing space (VPS) and multiple virtual processing or computing environments are disclosed, and processes and methods for operating each virtual processing environment within the virtual processing space are now discussed. The order of steps is exemplary and different orders may be used to achieve equivalent or similar results and certain steps may be performed in parallel without conflict with respect to resources. In process 2970 each major step is listed and exemplary substeps within each major step are indicated by letters. Method embodiments are shown in the flowchart of FIG. 21.

1. 외부 프로세스 식별 및 식별된 외부 프로세스를 실행하기 위해 신뢰된 가상 처리 또는 계산 환경(및 선택적으로 분리된 저장 장치 고정) 생성, 구성 또는 할당(단계 2971)1. Create, configure, or allocate an external process identification and trusted virtual processing or computing environment (and optionally freezing separate storage devices) to run the identified external processes (step 2971)

(a) 다수의 가능성있는 외부 프로세스 입력들(EP1in, EP2in,..., EPKin)중에서 실행될 제 1 외부 프로세스 입력(EP1in) 식별, 여기서 K는 양수(positive number) 범위에 대한 정수 (단계 2971a). 간단한 설명 및 명명을 위해, 외부 프로세스 입력(EP1in) 및 외부 프로세스 출력(EP1out)은 각각 입력 및 출력 프로세스로 간주될 뿐만 아니라 이러한 프로세스 실행 결과로서 발생되는 프로세스를 실행하는데 요구되는 컨텐츠(동작 시스템 요구조건 및/또는 파라미터, 애플리케이션 프로그램 및/또는 파라미터, 지시, 명령, 데이터, 또는 프로세스를 한정 또는 실행하는데 요구되는 다른 엘리먼트들)로 간주된다.(a) identifying a first external process input (EP1in) to be executed among a number of possible external process inputs (EP1in, EP2in, ..., EPKin), where K is an integer for a positive number range (step 2971a) . For simplicity and naming, the external process input (EP1in) and the external process output (EP1out) are not only considered input and output processes, respectively, but also the content (operating system requirements) required to execute the processes resulting from the execution of these processes. And / or parameters, application programs and / or parameters, instructions, instructions, data, or other elements required to define or execute a process.

(b) N-차원 가상 처리 공간(VPS) 내에서 가능한 다수의 가상 처리 환경(VPE1, VPE2, VPE3,...,VPEM)중에서 제 1 인식되고 신뢰된 가상 처리 환경(VPE1) 설정, 여기서 N은 양수 범위의 정수 (단계 2971b). 또한 가상 처리 환경은 수행된 프로세스가 계산 프로세스, 또는 보다 단순한 계산 환경인 경우 가상 계산 환경인 것으로 간주될 수 있다. 이들 처리 또는 계산 환경이 서로 그리고 외부 프로세스와 분리되고 가상 또는 물리적 서브시스템 또는 유니트중 하나이기 때문에, 이들은 또한 유저 애플리케이션 처리, 시스템 제어, 또는 임의의 다른 동작 또는 처리 태스크이든지, 임의의 목적을 위해 사용될 수 있는 분리된 처리 유니트 계산 환경으로 간주될 수도 있다. 예를 들어, 이들 가상 처리 환경은 제어 & 스위칭 계산 환경, 보호된 저장 장치 계산 환경, 판독/기록 제어 계산 환경, 유저 인터페이스 계산 환경, 유저 계산 환경, 제어 계산 환경, 분리된 처리 유니트 계산 환경, 유저 인터페이스 계산 환경, 또는 다른 계산 또는 처리 환경으로 동작가능하게 구성될 수 있다. 이들 가상 계산또는 처리 환경은 정적으로 결정될 수 있으나 바람직하게는 동적으로 한정되며 존재하는 시스템 부품들로 구성가능하다. 이러한 시스템 부품들은 로컬 또는 지역적으로 분포될 수 있다.(b) setting up a first recognized and trusted virtual processing environment (VPE1) among a number of possible virtual processing environments (VPE1, VPE2, VPE3, ..., VPEM) within the N-dimensional virtual processing space (VPS), where N Is an integer in the positive range (step 2971b). The virtual processing environment may also be considered to be a virtual computing environment if the performed process is a computing process, or a simpler computing environment. Because these processing or computing environments are separate from each other and external processes and are one of a virtual or physical subsystem or unit, they may also be used for any purpose, whether it is user application processing, system control, or any other operation or processing task. May be considered as a separate processing unit computing environment. For example, these virtual processing environments include control & switching computing environments, protected storage computing environments, read / write control computing environments, user interface computing environments, user computing environments, control computing environments, separate processing unit computing environments, and users. It can be configured to be operative with an interface computing environment, or other computing or processing environment. These virtual computing or processing environments may be determined statically but are preferably dynamically defined and configurable with existing system components. Such system components may be distributed locally or locally.

(c) 선택적으로, 이 단계에서 분리된 저장 장치 고정(하기 ISL1in 및 ISL1out 참조)이 식별, 구성 및/또는 할당되어, 이들은 하기 개시된 것처럼 요구되는 경우 이용가능하다(단계 2971c). 분리된 저장 장치 고정은 지시, 데이터, 또는 다른 정보 또는 컨텐츠를 저장할 수 있으나 바이러스성 또는 다른 악성 코드일 수 있는 임의의 비트 수집은 실행할 수 없다. 분리된 저장 장치 고정에서 "록(Lock)"이란 용어는 우주선 및 에어록의 한쪽 측면상의 환경이 에어록의 다른쪽 측면상의 환경과 직접 접속하거나 영향받는 것을 방지하는 환경 또는 다른 압력 또는 오염방지 챔버에서의 "에어 록(air lock)"으로 사용되는 용어 록(lock)과 유사하게 사용된다.(c) Optionally, in this step, separate storage device locks (see ISL1in and ISL1out below) are identified, configured and / or assigned so that they are available if required as described below (step 2971c). A separate storage device can store instructions, data, or other information or content, but cannot collect any bits that may be viral or other malicious code. The term "lock" in securing a separate storage device refers to an environment or other pressure or pollution prevention chamber that prevents the environment on one side of the spacecraft and airlock from directly contacting or being affected by the environment on the other side of the airlock. It is used similarly to the term lock, which is used as "air lock" in.

2. 신뢰된 가상 처리 환경으로 외부 프로세스 입력 안정하게 장착(단계 2972)2. Stable Mounting of External Process Input to a Trusted Virtual Processing Environment (Step 2972)

(a) EP1in을 실행하는데 필요한 입력 성분을 저장하기 위해 제 1 인식되고 신뢰된(제거된) 분리된 저장 장치 고정(ISL1in) 설정 (단계 2972a).(a) Setting up a first recognized and trusted (removed) isolated storage device lock (ISL1in) to store the input components needed to run EP1in (step 2972a).

(b) ISL1in과 EP1in 접속(결합) (단계 2972b). (결합 및 해체는 동적으로 결정 또는 고정될 수 있고 물리적 또는 논리적 또는 가상적일 수 있다).(b) ISL1in and EP1in connection (combination) (step 2972b). (Combination and teardown can be determined or fixed dynamically and can be physical or logical or virtual).

(c) ISL1in에 EP1in 장착. (임의의 소스 및 임의의 데스티네이션 사이의 장착 또는 이동은 복사됨에 따라 복사된(예를 들어 EP1in 또는 EP1out) 임의의 콘탠츠 비트의 실행을 할 수 없는 하드웨어 또는 복사 디바이스 및 복사 동작을 사용하여 바람직하게 수행된다)(단계 2972c). 또한, 분리 분리된 저장 장치 고정(ISL1in 및 ISL1out)은 바람직하게 이들 내부에 저장된 임의의 다수의 콘탠츠 비트 실행을 할 수 없다. 또한 외부 프로세스와 가상 처리 환경 사이의 결합은 결코 바람직하지 않고, (i) 외부 프로세스 입력 복사는 입력 분리된 저장 장치 고정을 통해 가상 처리 환경과 통신되며, (ii) 외부 프로세스 출력의 복사는 가상 처리 환경으로부터 외부 분리된 저장 장치 고정을 통해 외부 프로세스(또는 다른 지정된 프로세스)로 통신된다.(c) EP1in attached to ISL1in. (Mounting or moving between any source and any destination is desirable using a copy operation and hardware or copy device that is unable to execute any content bits copied as it is copied (e.g. EP1in or EP1out). (Step 2972c). In addition, separate storage locks (ISL1in and ISL1out) are preferably not capable of executing any number of content bits stored therein. Also, the coupling between external processes and virtual processing environments is never desirable, and (i) external process input copies are communicated with the virtual processing environment through input-separated storage pinning, and (ii) copying of external process outputs is virtual processing It is communicated to external processes (or other designated processes) via a storage device that is externally isolated from the environment.

(d) EP1in과 ISL1in 분리(논리적으로 또는 물리적 해체) (단계 2972d).(d) Separation of EP1in and ISL1in (logically or physically) (step 2972d).

(e) VPE1과 ISL1in 접속 (단계 2972e).(e) VPE1 and ISL1in connection (step 2972e).

(f) ISL1in으로부터 VPE1으로 EP1in 이송/장착/복사 (단계 2972f).(f) Transfer / mount / copy EP1in from ISL1in to VPE1 (step 2972f).

(g) VPE1으로부터 ISL1in 분리(해체) (단계 2972g).(g) ISL1in separation (disassembly) from VPE1 (step 2972g).

3. 분리된 가상 처리 환경내에서 외부 프로세스 실행 (단계 2973)3. Running External Processes in a Separate Virtual Processing Environment (Step 2973)

(a) EP1out 출력 결과를 발생시키기 위해 VPE1을 이용하여 EP1in 입력 처리 (단계 2973a).(a) EP1in input processing using VPE1 to generate EP1out output results (step 2973a).

4. 초기 외부 프로세스로 외부 프로세스 결과를 안정하게 해체(단계 2974) 4. Stably dismantle external process results with initial external process (step 29 74)

(a) VPE1에 의해 EL1in의 실행으로 야기되는 출력 성분을 저장하기 위해 제 1 인식되고 신뢰된(제거된) 분리된 저장 장치 고정(ISL1out) 설정(일부 실시예에서, ISL1in은 ISL1out과 동일한 반면 다른 실시예에서는 상이하다) (단계 2974a).(a) A first recognized and trusted (removed) separate storage device fixed (ISL1out) setting for storing output components caused by the execution of EL1in by VPE1 (in some embodiments, ISL1in is the same as ISL1out while other In the examples) (step 2974a).

(b) VPE1과 ISL1out 접속(결합) (단계 2974b).(b) VPE1 and ISL1out connection (combination) (step 2974b).

(c) ISL1out에 EP1out 이송/장착/복사 (단계 2974c).(c) Transfer / mount / copy EP1out to ISL1out (step 2974c).

(d) ISL1out으로부터 VPE1 분리(해체) (단계 2974d).(d) VPE1 detachment (disassembly) from ISL1out (step 2974d).

(e) ISL1out과 EP1out 접속(결합) (출력 결과 EP1out은 입력 프로세스 EP1in과 상이한 프로세스 또는 동일한 프로세스이거나 또는 상이한 프로세스 또는 동일한 프로세스일 수 있다) (단계 2974e).(e) ISL1out and EP1out connection (combination) (output result EP1out may be a different process or the same process or different process or the same process as input process EP1in) (step 2974e).

(f) EP1에 EP1out 이송/장착/복사 (단계 2974f).(f) Transfer / mount / copy EP1out to EP1 (step 2974f).

(g) ISL1out으로부터 VPE1 분리(해체) (단계 2974g).(g) VPE1 detachment (disassembly) from ISL1out (step 2974g).

5. 5. 신뢰된Trusted 가상 처리 환경의 할당  Allocation of virtual processing environment 하제laxative (de-allocate) 및 할당된 가상 처리 공간 자원의 제거(free)(단계 2975).(de-allocate) and free the allocated virtual processing space resources (step 2975).

(a) VPE1in 또는 VPE1out에 할당된 가상 처리 환경 또는 가상 프로세스 공간 자우너을 해제하고 할당 해제한다.(단계 2975) 자원들은 선택적으로 처리에 더이상 필요하지 않게 되면 언제든지 해제되고 할당 해제될 수 있다.(단계 2975a) 예컨대, 자원들은 프로세스에 식별된 후 프로세스에 의해 사용되도록 계획되지만 필요할 때까지 기타 외부 또는 내부 프로세스를 위한 이용가능한 자원의 풀(pool)로부터 배제될 필요는 없다. (a) Release and deallocate the virtual processing environment or virtual process space leveler assigned to VPE1in or VPE1out (step 2975). The resources may optionally be released and deallocated at any time when they are no longer needed for processing. 2975a) For example, resources are planned to be used by a process after being identified to the process but need not be excluded from the pool of available resources for other external or internal processes until needed.

설명된 프로세스는 단순히 필요하거나 요구된 정도의 분리(isolation)를 수행하기 위한 일 실시예일 뿐이다. 분리를 달성하기 위한 다른 방법과 과정이 이용될 수 있으며, 설명된 실시예의 단계들의 순서는 바뀔 수 있고 동일한 결과를 얻을 수 있다. The described process is merely one embodiment for performing the degree of isolation required or required. Other methods and procedures for achieving separation may be used, and the order of the steps of the described embodiments may be reversed and the same result may be obtained.

단일 컴퓨터 내에서의 다중 프로세스 Multiple processes within a single computer 스트림의Of stream 일시적인  temporary 멀티플렉싱에On multiplexing 대한 실시예 Example

본 발명의 일 실시예에서, 개별 프로세스 또는 처리 스트림은 다른 제어 로직의 제어 회로에 의해 별개로 유지되고 분리된다. 복잡한 또는 멀티-파트(multi-part) 프로세스의 완료가 하나 이상의 프로세스 수행을 필요로 하는 처리 스트림이 이용될 수 있다. 이러한 내용의 분리는 (필요한 경우) 컴퓨터 작동 시스템 및/또는 애플리케이션 프로그램 명령의 실행이 처리 로직 내에서 다른 프로세스로부터의 분리에 수행될 수 있다는 것을 의미한다. 처리 로직은 마이크로프로세서, 프로세 서, 제어기, 마이크로-제어기, 특정 목적의 코프로세서, 디지털 신호 프로세서, 광학 컴퓨터, 아날로그 컴퓨터, 또는 처리 동작을 수행하는 기타 장치 또는 시스템일 수 있다. 이러한 설명은 단일 프로세서 코어(core)를 갖는 단일 프로세서에 관해 이루어졌지만, 이러한 아키텍쳐와 방법은 다중 프로세서 시스템의 각각에 또는 선택된 것에 적용되거나 단일 프로세서의 다중 코어에 적용될 수 있다. 또한 본 발명은 상이한 보드 또는 상이한 머신 사이에 분배되지만 서로 통신을 위해 결합되거나 일부 다른 마스터 제어 로직에 결합된 단일 보드 및/또는 다중 프로세서들 상의 다중 프로세서를 갖는 컴퓨터에 적용될 수 있다.In one embodiment of the present invention, individual process or processing streams are kept separate and separated by control circuitry of other control logic. Processing streams may be used in which the completion of a complex or multi-part process requires the execution of one or more processes. Separation of this content means that the execution of the computer operating system and / or application program instructions (if necessary) can be performed in isolation from other processes within the processing logic. Processing logic can be a microprocessor, processor, controller, micro-controller, special purpose coprocessor, digital signal processor, optical computer, analog computer, or other device or system that performs processing operations. Although this description has been made with respect to a single processor having a single processor core, this architecture and method may be applied to each or a selection of multiprocessor systems or to multiple cores of a single processor. The invention may also be applied to a computer having multiple processors on a single board and / or multiple processors that are distributed between different boards or different machines but coupled to communicate with each other or coupled to some other master control logic.

다중 프로세스는 본 명세서에서 설명한 다차원 가상 처리 공간에 기초하거나 물리적 처리 공간 변수 중 임의의 하나 또는 조합에 기초하여 구별되거나 분리될 수 있다. 일부 특수하게 이용가능한 변수는 일시적인 또는 시간 기반 스위칭 또는 처리 자원의 적어도 부분적인 공유 세트 내의 멀티플렉싱 또는 시간 분배 처리 작업을 포함한다. 이러한 처리 상황의 예는 다중 프로세스가 프로세서 로직과 메모리 서브시스템 간의 하나 이상의 캐시 또는 기타 매우 빠른 중간 메모리가 구비된 단일 프로세서를 갖는 컴퓨터에서 일시적인 멀티플렉싱된 방식으로 처리된다. 일부 임시 컴퓨터에서, 빠른 중간 메모리는 하나 이상의 소위 레벨 1(L1) 및/또는 레벨 2(L2) 캐시 메모리이고 메모리 서브시스템은 랜덤 액세스 메모리(RAM)이지만; 본 ㅂ라명은 이들 구성에만 제한되지 않으며 캐시 메모리와 같은 중간 메모리를 필요로 하지 않을 수 있다. 또한 이러한 컴퓨터는 작동 시스템, 애플리케이션 프로그램, 및 작동 시스템, 애플리케이션 프로그램 및 사용자 데이터를 저장하기 위해 하드 디스크 드라이브와 같은 통상적으로 하나의 (또는 하나 이상의) 대용량 저장 장치를 포함할 수 있다. 미래에는, 다른 대용량 저장 비휘발성 저장 시스템이 이들 하드 디스크의 일부를 대체하거나 증가시킬 것으로 예견된다. Multiple processes may be distinguished or separated based on the multidimensional virtual processing space described herein or based on any one or combination of physical processing space variables. Some specially available variables include multiplexing or time distribution processing operations within at least a partial shared set of temporary or time based switching or processing resources. An example of such a processing situation is that multiple processes are processed in a transient multiplexed fashion on a computer with a single processor with one or more caches or other very fast intermediate memory between the processor logic and the memory subsystem. In some temporary computers, the fast intermediate memory is one or more so-called level 1 (L1) and / or level 2 (L2) cache memory and the memory subsystem is random access memory (RAM); This name is not limited to these configurations and may not require intermediate memory such as cache memory. Such a computer may also include one (or more) mass storage device, typically a hard disk drive, for storing the operating system, application programs, and operating system, application programs, and user data. In the future, other mass storage nonvolatile storage systems are expected to replace or increase some of these hard disks.

통상적으로 하나의 프로세스로부터 또다른 프로세스의 분리는 예컨대 또다른 프로세스 또는 처리 스트림에 대한 충격이 하나의 프로세스 또는 프로세스 스트림에 발생하거나, 작동 시스템, 어플레케이션 프로그램, 시스템 또는 프로그램 데이터, 또는 사용자 데이터가 또다른 프로세스로 인해 변형되는 것을 방지하는데 바람직하다. 이러한 문제드은 컴퓨터 바이러스, 컴퓨터 해커 코드, 컴퓨터 스파이웨어 또는 로봇(소위 "스파이-보츠"), 또는 기타 악성 코드로 인해 발생된다. 또한 이들은 컴퓨터 작동 시스템 또는 애플리케이션 프로그램의 버그 또는 코딩 에러 또는 일부 일치하지 않는 계산 머신 설정, 장치 에러, 또는 장치 드라이버 문제를 발생시킬 수 있다. 예컨대 하나의 프로그램 프로세스와 또다른 프로그램 프로세스 사이의 캐시 또는 기타 중간 메모리(예컨대 레벨 1 및/또는 레벨 2 캐시 메모리) 또는 메모리 서브시스템(예컨대, 프로세서 관련 RAM 메모리 등)에서돠 같은 메모리 또는 메모리 서브시스템의 메모리 오버플로우는 종종 프로그램 고장 또는 오염을 발생시킨다. Separation of another process from one process typically results in an impact on another process or process stream, for example, in one process or process stream, or an operating system, application program, system or program data, or user data. It is desirable to prevent deformation due to another process. These problems are caused by computer viruses, computer hacker code, computer spyware or robots (so-called "spy-bots"), or other malicious code. They can also cause bugs or coding errors of computer operating systems or application programs or some mismatched computational machine settings, device errors, or device driver problems. Memory or memory subsystems such as, for example, in a cache or other intermediate memory (such as level 1 and / or level 2 cache memory) or memory subsystems (such as processor-related RAM memory, etc.) between one program process and another program process. Memory overflow often causes program failure or corruption.

사용자 데이터 및/또는 프로그램 또는 작동 시스템 구성요소(component)의 분리는 논리적 분리, 메모리 어드레스 관리 기반 분리, 장치 또는 서브시스템의 작동이 가능한 통신 또는 전원 경로의 모두 또는 일부를 스위칭적으로 단락시킴으로써 작동을 사용할 수 없게 하는 것과 같은 물리적 분리, 또는 특정 장치, 시스템, 또는 서브시스템이 하나 이상의 프로세스에 공개되지 않게 하는 작동과 같은 다양한 방식으로 달성될 수 있으며, 반드시 이러한 것들에 제한되는 것은 아니다. 분리를 위한 상기 방법과 수단은 짧은 기간 동안을 위해 또는 오랜 기간 동안을 위해 일시적일 수 있다. 일부 프로세스들은 장치 또는 서브시스템을 참조하지 않거나 액세스하지 않을 수 있다. Separation of user data and / or program or operating system components may disrupt operation by logically separating, memory address management based separation, or switching all or part of a communication or power path that may be capable of operating a device or subsystem. It may be accomplished in a variety of ways, such as, but not necessarily limited to, physical separation such as making it unusable, or operation in which a particular device, system, or subsystem is not disclosed to one or more processes. The methods and means for separation may be temporary for short periods of time or for long periods of time. Some processes may not reference or access the device or subsystem.

메모리 관리는 하나의 물리적 프로세서와 공유된 물리적 메모리만을 갖는 단일 컴퓨터에서와 같이 임의의 공유된 처리 자원의 다중 프로세스 또는 프로세스 스트림을 처리할 때 매우 중요하다. 또한 프로세서 실행 및 대용량 저장 장치 관리는 계산 또는 처리 시스템의 악의적인 활동을 방지하기 위한 소중한 도구이다. 예컨대, 만약 다른 프로그램 아이템, 데이터 아이템, 파일, 사용자 데이터 등의 존재가 다른 프로세스로부터 감춰질 수 있다면 일부 실시예에서 컴퓨터 또는 계산 또는 처리 환경에 존재하는 다른 프로세스 또는 데이터에 대한 정보를 스파잉(spy)하거나 얻기 위한 하나의 프로세스의 능력을 제거할 가능성은 거의 없다.Memory management is very important when dealing with multiple processes or process streams of any shared processing resource, such as in a single computer having only one physical processor and shared physical memory. Processor execution and mass storage management are also valuable tools to prevent malicious activity of computing or processing systems. For example, if the presence of other program items, data items, files, user data, etc. can be hidden from other processes, in some embodiments spying information about other processes or data residing in a computer or computational or processing environment. It is unlikely to remove the ability of one process to gain or gain).

한편, 일부 경우에 충분한 인증(authorization)과 보안(safeguard)을 갖는 인증자(administrator)와 같은 신뢰된 사용자가 처리 시스템의 작동 상태를 결정하고, 시스템의 활동을 모니터링하고, 및/또는 교정 작업의 수행 또는 시스템 동작의 유지 및 관리를 할 수 있도록 신뢰된 프로그램을 실행하는 것이 바람직할 수 있다. 따라서 본 발명의 실시예들은 프로세스-대-프로세스 상에서 선택된 분리 또는 비분리를 위해 제공된다.On the other hand, in some cases, a trusted user, such as an administrator with sufficient authorization and safeguard, determines the operational status of the processing system, monitors the system's activity, and / or It may be desirable to run a trusted program to perform or maintain and manage system operations. Accordingly, embodiments of the present invention are provided for selected separation or non-separation on a process-to-process.

이러한 문제들 중 일부를 다루기 위해 소프트웨어 기반 분리의 등급(dgree) 을 제공하는 시도가 있었지만, 필요하고(desire) 가능할(enable) 때 분리를 보장할 수 없었고, 그로 인해 진입점(entry point), 아킬레스-힐(Achilles-Heal), 또는 박식하고 정교한 해커와 바이러스에 의한 불법이용의 기회가 가능하였다. 특히 여러 버전의 마이크로소프트 윈도우즈(Windows 98, 98SE, NT, 2000, XP 등)와 같은 작동 시스템은 이러한 작동 시스템을 위한 애플리케이션 프로그램을 갖기 때문에 표적이 되었다. 애플 컴퓨터 제품, 여러 퍼스널 데이터 어시스턴트, 셀룰라 전화기, 및 기타 정보 기기들을 위한 작동 시스템과 같은 다른 작동 시스템도 표적이 되었고 공격받기 쉬웠다. Attempts have been made to provide some degree of software-based separation to address some of these issues, but could not ensure separation when needed and enable, thereby resulting in entry points, Achilles. Opportunities for exploitation by Achilles-Heal, or elaborate and sophisticated hackers and viruses, were possible. In particular, operating systems such as versions of Microsoft Windows (Windows 98, 98SE, NT, 2000, XP, etc.) were targeted because they had application programs for these operating systems. Other operating systems, such as Apple computer products, various personal data assistants, cellular phones, and other operating systems for information devices, have also been targeted and vulnerable.

본 명세서에서 설명한 본 발명의 일시적인 멀티플렉싱은 단일 물리적 계산 머신, 다중 프로세서 계산 머신, 소위 듀얼-코어 또는 다중-코어 프로세서를 갖는 단일 프로세서, 또는 (반드시 이에 한정되지 않지만 본 명세서에서 설명한 가상 계산 머신 및 가상 계산 공간과 같은) 임의의 가상 계산 머신과 함께 사용될 수 있으며, 이러한 구성에서 시간에 부가하여 추가의 멀티플렉싱 또는 처리 차원(dimension)이 존재할 수 있으며, 및/또는 프로세스와 관련한 실제 시간 또는 일시적인 시퀀스가 존재하거나 존재하지 않을 수 있다. 본 발명의 시스템, 장치, 아키텍쳐, 및 방법은 예컨대, 광학 계산 머신, 디지털 계산 머신, 아날로그 계산 머신, 생물학 또는 신경생물학 기반 계산 머신 또는 시스템, 및/또는 하이브리드 계산 머신, 및 이들의 조합을 포함하고, 이들 기술과 무관한 계산 머신에 적용될 수 있다. 또한 본 발명은 텔레비젼, 환경 시스템 및 장치, 비디오 프로세서, 자동차 및 항공기 시뮬레이션 및/또는 제어 시스템 및/또는 프로세서 또는 처리 로직을 갖는 기타 장치 또는 시스템과 같은 계산 부품을 포함하는 여러 비-계산 머신에 적용될 수 있다. The instantaneous multiplexing of the invention described herein may be performed by a single physical computing machine, a multiprocessor computing machine, a single processor with a so-called dual-core or multi-core processor, or (but not limited to, the virtual computing machine and virtual described herein). May be used with any virtual computing machine (such as a computing space), in this configuration there may be additional multiplexing or processing dimensions in addition to time, and / or there is a real time or temporal sequence with respect to the process May or may not exist. The systems, devices, architectures, and methods of the present invention include, for example, optical calculation machines, digital calculation machines, analog calculation machines, biological or neurobiological based calculation machines or systems, and / or hybrid calculation machines, and combinations thereof. In other words, it can be applied to computing machines independent of these techniques. The invention also applies to a variety of non-computing machines including computing components such as televisions, environmental systems and devices, video processors, automotive and aircraft simulation and / or control systems, and / or other devices or systems with processors or processing logic. Can be.

개별 프로세스들이 독립적으로 유지되는 방식이 불명료하게 하지 않도록 하기 설명은 단일 프로세서를 갖는 계산 머신에 한정되며, 세 개의 입력 처리 스트림은 A1..Al, B1...BJ, 및 C1...CK의 멤버들을 갖는 A,B,C로 불리며, I,J,K는 양의 정수이다. 이러한 실시예와 관련하여 설명한 본 발명은 타입 또는 애플리케이션과 무관한 다른 물리적 및 가상의 계산 및 처리 시스템으로 용이하게 확장될 수 있다. So as not to obscure how the individual processes are held independently of description is limited to the calculation machine having a single processor, processing three input streams A 1 ..A l, B 1 ... B J, and C 1 ... called A, B, C with members of C K , where I, J, K are positive integers. The invention described in connection with this embodiment can be readily extended to other physical and virtual computing and processing systems independent of type or application.

가상 처리 또는 계산 환경에서와 같은 물리적 또는 노리적 또는 가상 계산 머신에서 처리 자원 또는 장치 또는 회로의 일시적인 공유를 가능하게 하는 것에 부가하여, 본 발명의 시스템과 방법은 분리를 유지시켜 계산 환경에 존재하는 상이한 프로세스들이 오염으로부터 보호되게 한다. 이는 메모리 가시성(visibility) 및/또는 각각의 프로세스에 의한 액세스의 개별적인 제어에 의해 보거나 액세스할 권리를 갖는 메모리의 일부분 및 처리 환경의 기타 부품에 보거나 애세스만 할 수 있게 함으로써 적어도 부분적으로 달성된다. 또한, 가능한 경우 가시성 및/또는 액세스는 부분적으로 또는 완전한 판독 및/또는 부분적인 또는 완전한 기록 동작 모두를 가능하게하거나 액세스만을 판독할 수 있다. 마지막으로, 장치 또는 회로가 가시적인 경우라도, 가시성은 장치, 장치 피쳐, 또는 기타 장치의 능력 중 일부만이 관찰되도록 제한될 수 있다. 일 예에서, 메모리 장치의 상이한 배타 부분들은 두 개의 상이한 프로세스에 대해 판독/기록 액세스를 보거나 수행할 수 있으며, 관리 프로세스는 전체 메모리를 판독만 할 수 있다. In addition to enabling temporary sharing of processing resources or devices or circuits in a physical or logical or virtual computing machine, such as in a virtual processing or computing environment, the systems and methods of the present invention maintain separation and exist in the computing environment. Allow different processes to be protected from contamination. This is at least partly achieved by allowing only view or access to portions of memory and other parts of the processing environment that have the right to view or access by memory visibility and / or individual control of access by each process. Further, where possible, visibility and / or access may enable both partial or complete read and / or partial or complete write operations or read only access. Finally, even when the device or circuit is visible, visibility may be limited such that only some of the device, device feature, or other device capabilities are observed. In one example, different exclusive portions of the memory device may view or perform read / write access to two different processes, and the management process may only read the entire memory.

컴퓨터 해커 또는 바이러스가 컴퓨터의 동작을 방해하여 메모리 또는 버퍼의 오버플로우를 유발한다는 것은 잘 알려져 있다. 이러한 머신의 메모리 제어는 소프트웨어 제어 하에서 중요하며, 이러한 소프트웨어는 BIOS, 작동 시스템, 애플리케이션 프로그램, 또는 일들의 일부 조합에 존재한다. 이들은 모두 통상적으로 해커 또는 바이러스성 또는 기타 악성 코드에 액세스되기 때문에, 사용자 인지 또는 허용없이 액세스되고 수정될 수 있다.It is well known that computer hackers or viruses interfere with the operation of a computer, causing an overflow of memory or buffers. Memory control of such machines is important under software control, and such software resides in the BIOS, operating system, application programs, or some combination of things. Since they are all typically accessed by hackers or viral or other malicious code, they can be accessed and modified without user awareness or permission.

본 발명은 원래 환경에서 메모리 구성 및 제어를 포함한 처리 환경 구성 및 제어를 유지시켜 원치않는 악성 또는 악의적인 해커 또는 바이러스성 코드가 이러한 구성 또는 제어에 액세스하고 변형시켜 계산 시스템 또는 데이터 또는 계산 시스템 내의 기타 정보를 손상시키는 것을 못하게 한다. 따라서 이러한 프로세스들에 속하는 기타 프로세스 또는 데이터의 오염이 보호된다. 일반적으로 악성 코드가 계산 시스템 내에 존재하더라도, (중앙 처리 장치 또는 CPU 또는 기타 로직 처리 장치 또는 회로와 같은 프로세서 내의 모든 회로 또는 일부 회로와 같은) 실행 에이전트 및 오염될 또다른 프로그램 및/또는 데이터에 액세스해야 한다. 실행 에이전트만이 존재하는 경우, 악성 코드는 실행될 수 있지만 또다른 데이터 또는 프로그램 요소를 오염시킬 수 없다. 만약 악성 코드가 단순히 분리되지 않고 (공통 하드 디스크 드라이브와 같은) 또다른 프로그램 또는 데이터와 함께 저장되어 프로그램 실행 에이전트에 동시에 액세스하더라도, 악성 코드는 이러한 기타 프로그램 또는 데이터 아이템을 오염시킬 수 없다. 또한 데이터는 실행가능한 코드와 같은 프로그램 정보이거나 이를 포함하며, 이는 파일 타입의 확장으로부터 단순히 실행불가능한 코드로 나타난 파일들이 의심되는 이유이다. 분리는 물리적, 논리적, 가상적이거나 기탄 다른 수단 또는 이들 수단의 조합일 수 있다. The present invention maintains the configuration and control of the processing environment, including memory configuration and control in its original environment, so that unwanted malicious or malicious hackers or viral code can access and modify such configuration or control to enable the computing system or data or other within the computing system. Prevents you from compromising your information. Thus, contamination of other processes or data belonging to these processes is protected. Generally, even if malicious code is present in the computational system, access agents (such as all or some circuitry within the processor such as a central processing unit or CPU or other logic processing unit or circuit) and other programs and / or data to be corrupted Should be. If only an execution agent is present, the malicious code can be executed but cannot contaminate another data or program element. If the malicious code is not simply separated and stored with another program or data (such as a common hard disk drive) to access the program execution agent at the same time, the malware cannot contaminate these other programs or data items. The data also includes or includes program information such as executable code, which is why files that appear as simply executable code from an extension of a file type are suspect. Separation may be physical, logical, virtual or other means, or a combination of these means.

본 발명의 실시예들은 이들 특징들 모두를 제공한다. 한가지 특정 실시예에서, 메모리 구성과 제어는 실행중인 프로그램에 의해 수정되거나 기록될 수 없는 신뢰된 판독 전용 메모리(ROM)에서 유지된다. 특정한 신뢰된 절치(procedure)는 안전하고 신뢰된 방식으로 필요한 변화가 이뤄지도록 제공된다. 또다른 실시예에서, 메모리 구성 및 제어는 하드웨어 ASIC을 이용하여 유지된다. 또다른 실시예에서, 메모리 구성 및 제어는 수정되지만 컴퓨터 프로세서에서 실행중인 프로세스와 같은 신뢰되지 않은 소스로부터 기원한 임의의 프로세스가 아닌 펌웨어를 갖는 하드웨어 ASIC을 사용하여 유지된다. 메모리 구성 및 제어는 특정 프로세스에 할당된 단일 물리적 메모리의 고정된 크기로 설정되거나, 통계적인 모니터링의 사용 또는 동시에 처리되는 환경의 수와 실행될 것으로 기대되는 프로세스들의 메모리 또는 기타 자원 조건을 제안하는 사용자 프로파일을 통하는 것처럼 동적으로 결정될 수 있다. Embodiments of the present invention provide both of these features. In one particular embodiment, memory configuration and control is maintained in trusted read-only memory (ROM) that cannot be modified or written by a running program. Certain trusted procedures are provided to make the necessary changes in a safe and reliable manner. In another embodiment, memory configuration and control is maintained using a hardware ASIC. In another embodiment, memory configuration and control is modified but maintained using a hardware ASIC with firmware rather than any process originating from an untrusted source, such as a process running on a computer processor. Memory configuration and control can be set to a fixed size of a single physical memory allocated to a particular process, or a user profile that suggests the use of statistical monitoring or the number of environments that are processed concurrently and the memory or other resource conditions of the processes that are expected to run. It can be determined dynamically as though

본 발명의 실시예들은 예컨대 원래 존재하고 신뢰되며 안정적인 내장된 마스터 템플릿을 이용함으로써 처리 또는 계산 작업을 (성공적으로 또는 실패적으로) 경쟁시킨 후 계산 환경 수리 프로세스를 제거하거나 간략화시킨다. 이러한 예에서, 플러쉬(flush) 또는 삭제(clear)를 모두 필요하지 않고 처리 환경을 복구할 수 있다. 예컨대, 본 발명의 실시예들은 마이크로소프트 윈도우즈 XP 작동 시스템(또 는 기타 다른 작동 시스템 소프트웨어) 및 처리 환경에 필요한 다른 애플리케이션 프로그램을 저장하는 판독 전용 메모리를 포함할 수 있다. 상이한 처리 환경은 상이한 내장된 또는 저장된 작동 시스템 및/또는 애플리케이션 프로그램을 제공할 수 있다. 또한, 일부 방법은 속도와 수율을 증가시키면서 융통성이 필요한 경우 일부 부품을 내장하고 그외 부품을 로딩할 수 있다. 예컨대, 일 실시예에서 작동 시스템을 내장하고 애플리케이션프로그램을 기록 가능 메모리로 로딩할 수 있다. 이러한 실시예에서, 내장된 작동 시스템은 플러싱 및 복구를 필요로 하지 않지만, 오염되었을 수 있는 애플리케이션 프로그램을 저장하는 메모리는 플러싱되고 처리 작업이 완료된 후 공지된 원래 상태로 복구된다. Embodiments of the present invention eliminate or simplify the computational environment repair process after competing processing or computational tasks (successfully or unsuccessfully), for example, by using built-in master templates that are original, reliable and stable. In this example, the processing environment can be restored without the need for both flush or clear. For example, embodiments of the present invention may include a read-only memory that stores a Microsoft Windows XP operating system (or other operating system software) and other application programs needed for the processing environment. Different processing environments may provide different embedded or stored operating systems and / or application programs. In addition, some methods can incorporate some components and load others when flexibility is needed while increasing speed and yield. For example, in one embodiment the operating system may be embedded and an application program loaded into a recordable memory. In this embodiment, the embedded operating system does not require flushing and recovery, but the memory storing the application program which may have been corrupted is flushed and restored to its known state after the processing operation is completed.

도 22를 참조하면, 세 개의 프로세스(A,B,C)의 일시적인 멀티플렉스 동작을 위한 아키텍쳐 및 작도 시나리오가 단일 프로세서 및 메모리에 대해 설명된다. 설명의 편의를 위해, 세 개의 프로세스("A", "B", "C")는 프로세서 이용가능성을 위해 대기하고 동시에 시작하는 것으로 가정한다. 당업자에 공지된 컴퓨터 시스템, 프로세서, 메모리 등의 종래 부재들은 본 발명을 명료하게 하기 위해 도시하지 않았다.Referring to FIG. 22, an architecture and construction scenario for transient multiplex operation of three processes A, B, and C is described for a single processor and memory. For convenience of explanation, it is assumed that three processes ("A", "B", "C") wait for processor availability and start at the same time. Conventional members, such as computer systems, processors, memories, and the like, which are known to those skilled in the art, are not shown to clarify the invention.

계산 시스템(3002)은 레벨1(L1) 캐시(3006)를 갖는 프로세서(3004), 입력 소스(3010)로부터 하나 이상의 입력 스트림을 수신하기 위한 하나 이상의 입력 버스 포트(3008), 하나 이상의 출력 스트림을 리시버(3014)와 통신하기 위한 하나 이상의 출력 버스 포트(3012), 및 스테이터스(status)(30116) 및 콘트롤(3018)과 통신하기 위한 포트 또는 핀을 포함한다. 또한 프로세서는 네렙2(L2) 캐시(3020) 및 랜덤 액세스 메모리(RAM)(3022)과 같은 온-칩, 온-보드, 또는 기타 메모리와 통신하기 위한 버스 또는 다른 수단을 포함한다. 프로세서는 종래의 프로세서 또는 마이크로프로세서 또는 특수하게 설계된 프로세서일 수 있다. 본 발명의 아키텍쳐는 입력 또는 입력 세트(3036)를 수신하기 위한 입력 버스 포트(3032) 및 출력 또는 출력 세트(3038)와 통신하기 위한 출력 버스 포트(3034)를 포함하는 타이밍, 어드레스 콘트롤 및 스위칭(TACS) 로직(3030)을 제공한다. 이러한 실시예에서, TACS 로직(3030)은 입력(3040)과 같이 프로세서(3004)를 위한 입력(3036)을 수신하고 프로세서 출력(3042)을 수신하며 이들을 처리하여 출력(3038)을 발생시키도록 접속되어 있다. Computing system 3002 includes processor 3004 with Level 1 (L1) cache 3006, one or more input bus ports 3008 for receiving one or more input streams from input source 3010, and one or more output streams. One or more output bus ports 3012 for communicating with the receiver 3014, and ports or pins for communicating with the status 30116 and the control 3018. The processor also includes a bus or other means for communicating with on-chip, on-board, or other memory, such as Nerep 2 (L2) cache 3020 and random access memory (RAM) 3022. The processor may be a conventional processor or a microprocessor or a specially designed processor. The architecture of the present invention includes an input bus port 3032 for receiving an input or input set 3036 and an output bus port 3034 for communicating with an output or output set 3038. TACS) logic 3030. In such an embodiment, TACS logic 3030 is connected to receive input 3036 for processor 3004 and receive processor output 3042 and process them to generate output 3038, such as input 3040. It is.

TACS 로직은 입력 스트림(3036) 직렬화기(seriallizer) 로직 또는 (본 실시예에서 세개의 입력 프로세스(A,B,C)인) 입력 프로세스 스트림(3036)을 수신하고 이들을 선택적으로 해석하거나 처리될 이들 내부의 성분을 식별하는 기타 입력 프로세스 스트림 시리얼라이징 수단(3044)을 포함한다. 직렬화기라는 용어는 가능한 넓은 의미를 가지며 비트-대-비트, 바이트-대-바이트, 워드-대-워드 또는 기타 특별한 방식으로 입력 스트림을 처리하는 것으로 제한하지 않으며, 오히려 하나의 입력 스트림 특성(characteristic) 또는 그 조합을 갖는 입력 스트림(들)의 하나 이상의 조합을 수용하고, 출력을 발생시키는 한정된 세트의 규정(policy) 또는 로직에 따라 각각의 스트림을 처리한다. (비직렬화기는 유사하게 출력을 발생시키는 하나의 입력 또는 그 조합을 수신하고 디시얼라이징한다.) 선택적으로 비록 프로세서의 다른 엘리먼트들이 하나의 프로세스 또는 또다른 프로세스에 개별적으로 할 당될 때 큰 장점을 갖지만, 특정 처리 사이클 동안 각각의 프로세스에 의해 사용될 프로세서의 성분들을 식별할 수 있다. 예컨대 이들 성분들은 통상적인 계산 머신 및 방법들에 존재하는 것과 같은 단일 지시(instruction), 데이터를 갖는 단일 지시, 여러 지시 또는 명령(command), 지시들, 데이터 등의 다른 세트일 수 있다. 본 예에서, 직렬화기(3044)는 각각이 종료될 때까지 A의 하나의 성분(예컨대, A1)을 취하고 그 다음에 B의 한 성분(예컨대 B1)을 취하며, 그 다음에 C의 한 성분(예컨대 C1)을 취하며, 그 다음에 각각이 종료될 때까지 A(예컨대 A1),B(예컨대 B1),C(예컨대 C1)을 반복하며, 그 후에 추가의 프로세스 스트림을 처리한다. 다른 예는 미리설정되거나 동적으로 결정된 규정에 따라 입력(3032)에서의 대기 처리 스트림으로부터 선택될 수 있다. 입력 스트림의 수는 제한이 없지만 본 실시예에서는 TACS 로직(3030)과 프로세서(3004)가 처리를 위해 이들을 용이하게 수용할 때까지 대기시킨다. 일반적으로 A,B,C 중 하나는 길이가 다르고 먼저 종료되지만,다음 프로세스 스트림(D)을 해석하고 시리얼라이징하기 전에 다른 것들의 종료를 대기할 이유가 없다. 실제로, 프로세스들은 서로 완전히 독립적으로 실행된다. 다른 방식(scheme)이 구현될 수 있으며, 예컨대 프로세서 스트림(B)이 높은 우선권을 갖는다면, B의 다수 성분들은 예컨대 직렬화된 스트림 "A1B1B2B3C1"과 같이 A 및 C의 단일 성분들 간에 산재될 수 있다. TACS logic receives the input stream 3036 serializer logic or the input process stream 3036 (which is the three input processes A, B, C in this embodiment) and those to be selectively interpreted or processed. Other input process stream serializing means 3044 that identifies the components therein. The term serializer has the broadest possible meaning and is not limited to processing the input stream in a bit-to-bit, byte-to-byte, word-to-word or other special way, but rather as an input stream characteristic. Or one or more combinations of input stream (s) having a combination thereof, and process each stream according to a finite set of policies or logic that generates an output. (Deserializers similarly receive and deserialize one input or combination thereof that produces an output.) Optionally, although other elements of the processor have a great advantage when individually assigned to one process or another, The components of the processor to be used by each process during a particular processing cycle can be identified. For example, these components can be a single instruction, a single instruction with data, several instructions or other sets of instructions, instructions, data, etc. as are present in conventional computing machines and methods. In this example, the serializer 3044 takes one component of A (eg, A 1 ) and then takes one component of B (eg, B 1 ) until each ends, and then of C Take one component (such as C 1 ), then repeat A (such as A 1 ), B (such as B 1 ), C (such as C 1 ) until each end, followed by additional process streams To deal with. Another example may be selected from an atmospheric processing stream at input 3032 in accordance with preset or dynamically determined rules. There is no limit to the number of input streams, but in this embodiment, the TACS logic 3030 and processor 3004 wait until they readily accept them for processing. Typically one of A, B, C is of different lengths and terminates first, but there is no reason to wait for the termination of the others before interpreting and serializing the next process stream (D). In practice, the processes run completely independently of each other. Other schemes may be implemented, for example, if processor stream B has a high priority, then the multiple components of B may be A and C, for example, such as serialized stream "A 1 B 1 B 2 B 3 C 1 ". It can be interspersed between single components of.

L1(3006) 또는 L2(3020) 캐시 메모리와 같은 프로세서 메모리 또는 프로세서 칩(3004) 상의 기타 버퍼 메모리 또는 RAM(3022)와 같은 외부 메모리가 프로세스들의 절대 독립을 유지하도록 제어되는 프로세스의 실시예가 이제 설명된다. 내부 메모리 분리를 제공하는 대안은 기타 빠른 중간 메모리를 캐시하기 위한 또는 RAM 메모리와 같은 기타 메모리 서브시스템을 위한 독립된 물리적 메모리 칩을 제공하는 것이지만, 이는 비용, 상호접속 및 기타 고려사항들로 인해 바람직하지 않을 수 있다. 독립된 물리적 메모리 장치 또는 칩들을 갖는 다중 프로세서들 또는 다중 프로세서 코어들이 구형되는 경우, 보다 편리할 수 있다. 또한, 일부 실시예들은 다중 프로세서 코어들 및 각각의 코어와 관련한 빠른 메모리를 제공하여 (예컨대 외부 RAM과 같은) 독립된 메모리 서브시스템이 필요하지 않을 수 있다. Embodiments of processes in which processor memory such as L1 3006 or L2 3020 cache memory or other buffer memory on processor chip 3004 or external memory such as RAM 3022 are controlled to maintain absolute independence of the processes are now described. do. An alternative to providing internal memory isolation is to provide a separate physical memory chip for caching other fast intermediate memory or for other memory subsystems such as RAM memory, but this is undesirable due to cost, interconnection and other considerations. You may not. It may be more convenient if multiple processors or multiple processor cores with independent physical memory devices or chips are outdated. In addition, some embodiments may provide multiple processor cores and fast memory associated with each core, thus eliminating the need for a separate memory subsystem (such as external RAM).

그러나, 모든 실시예가 프로세스의 절대 독립 또는 분리를 필요로 하거나 그 장점을 갖는 것은 아니며, 일부 실시예에서 인증되고 신뢰된 관리자가 컴퓨터의 동작을 모닝터링하게 하는 신뢰된 모니터링 프로세스가 제공될 수 있다. 또한 다른 프로세서는 이들간에 한정된 신뢰 레벨이 존재하는 절대 분리없이 동작할 수 있다. 또한, 다수의 프로세스들은 다수의 입력 및 출력들이 함께 그룹화되고 설명한 분리 레벨로 처리되는 한 신뢰가 없더라도 함께 처리될 수 있다. 예컨대, 처리 환경은 두 개의 상이한 애플리케이션 프로그램을 이용하여 워드 처리 동작 및 사진 편집 프로세스를 수행하도록 생성될 수 있다. 이러한 처리 환경의 입력 및 출력은 텍스트 문서 및 사진 파일일 수 있지만, 본 발명은 처리 또는 계산 환경으로부터의 입력 또는 출력의 문자 또는 내용이 무엇인지를 주의할 필요가 없기 때문에 작동가능하다.However, not all embodiments require or have the advantage of absolute independence or separation of processes, and in some embodiments a trusted monitoring process may be provided that allows an authorized and trusted administrator to monitor the operation of the computer. Other processors may also operate without absolute separation, where there is a limited level of confidence between them. In addition, multiple processes can be processed together without trust as long as multiple inputs and outputs are grouped together and processed at the isolation level described. For example, the processing environment may be created to perform word processing operations and photo editing processes using two different application programs. The input and output of such a processing environment may be text documents and photo files, but the present invention is operable because it does not require attention to what is the character or content of the input or output from the processing or computing environment.

이러한 실시예에서, 직렬화된 스트림(3050)은 신뢰된 TACS 로직(3030)에 의해 생성되며 TACS 로직은 처리되는 프로세스 성분에 따라 (간단한 용어로서 컴퓨터의 물리적 또는 논리적 구성인) 명백한 프로세스 환경 구성을 수정한다. 스트림(A,B,C)의 성분들이 설명한 방식으로 직렬화된 실시예에서, 타이밍 제어 회로는 수신되는 각각의 성분에 대한 상이한 구성을 판독하고 적용하도록 동작한다. TACS 로직은 시간적으로 매 순간 (신뢰된 ROM으로부터의 BIOS 구성과 같은) 상이한 구성 기록(record)을 유효하게 판독하여 프로세스(A)에 전용된 각각의 시간 조각(slice)에 대해 A에 할당되고 프로세스"A"에 부여된 메모리(어드레스) 범위 외부의 다른 메모리를 부주의하게 액세싱할 수 없는 것을 포함한, 프로세스(A)로 식별된 메모리 또는 기타 컴퓨터 환경 엘리먼트들만을 본다.In this embodiment, serialized stream 3050 is generated by trusted TACS logic 3030 and the TACS logic modifies the apparent process environment configuration (in simple terms, the physical or logical configuration of the computer) according to the process component being processed. do. In an embodiment where the components of the streams A, B, and C are serialized in the manner described, the timing control circuitry operates to read and apply different configurations for each component received. TACS logic is effectively assigned to A for each time slice dedicated to process A by validly reading different configuration records (such as BIOS configurations from trusted ROM) at every moment in time. Only memory or other computer environment elements identified as process A are seen, including the inability to inadvertently access other memory outside the memory (address) range imparted to "A".

일 실시예에서, 이러한 메모리 관리 및 제어는 L1 및 L2 캐시 및 RAM의 어드레스 범위(또는 다른 식별된 부분)로 기록 및 판독하는 프로세서(3004)를 가짐으로써 달성된다. 이는 예컨대 각각의 메모리(예컨대, L1,L2,RAM, 및 대용량 저장 디스크 드라이브)의 하나의 영역만이 프로세서에 가시적이고 이들 영역이 각각의 메모리의 상이한 어드레스 범위로 맵핑되거나 식별되는 어드레스 리맵핑 방식(remapping scheme)을 이용하여 달성될 수 있다. 즉, 프로세서는 처리 프로세스"A"가 실제로 프로세스"A"와 관련한 어드레스 범위(ADDR2)(3062)에 기록하거나 판독할 때, 처리 프로세스"B"가 실제로 프로세스"B"와 관련한 어드레스 범위(ADDR3)(3063)에 기록하거나 판독할 때, 그리고 처리 프로세스"C"가 실제로 프로세스"C"와 관련한 어드레스 범위(ADDR4)(3064)에 기록하거나 판독할 때, 제 1 L1 캐 시 어드레스 범위(ADDR1)(3061)을 본다. 유사한 맵핑 또는 식별이 하드 디스크 드라이브 저장 장치, 레벨 2 캐시, 및 RAM과 같은 기타 저장 장치에서 발생한다. 유사한 방식으로, 기타 장치는 독립을 유지하기 위해 특정 프로세스에 맵핑되거나 배타적으로 식별될 수 있다. 즉, 본 발명의 실시예에서, 맵핑 또는 배타적인 식별 또는 할당은 단순한 작동 시스템 또는 소프트웨어 재할당이 아니라, 하나의 프로세스가 다른 프로세스를 보거나 인식하지 못하도록 계산 시스템의 구성 또는 성분을 다시 한정하는 신뢰된 제어를 포함한다.In one embodiment, such memory management and control is achieved by having a processor 3004 that writes and reads into address ranges (or other identified portions) of L1 and L2 caches and RAM. This can be done by address remapping schemes where only one area of each memory (e.g., L1, L2, RAM, and mass storage disk drive) is visible to the processor and these areas are mapped or identified to different address ranges of each memory. may be achieved using a remapping scheme. In other words, when the processing process "A" actually writes to or reads from the address range (ADDR2) 3062 associated with the process "A", the processor actually processes the address range ADDR3 with respect to the process "B". When writing or reading to 3303 and processing process "C" actually writes to or reads from address range ADDR4 3064 associated with process "C", the first L1 cache address range ADDR1 ( 3061). Similar mapping or identification occurs in hard disk drive storage, level 2 cache, and other storage devices such as RAM. In a similar manner, other devices may be mapped or identified exclusively to a particular process to maintain independence. That is, in an embodiment of the present invention, mapping or exclusive identification or assignment is not a simple actuation system or software reassignment, but is a trusted way of redefining the configuration or components of the computational system such that one process does not see or recognize the other. Control.

예시된 실시예에서, TACS(3030)는 L1 캐시(3065)로의 신호, L2 캐시(3066)로의 신호, RAM(3066)으로의 신호, 및 선택적으로 대용량 저장 장치 또는 기타 장치(3068)로의 신호의 제어(및 선택적 스테이터스(status))를 통해 메모리 어드레스 제어를 제어해야 한다. In the illustrated embodiment, the TACS 3030 may be configured to include a signal to the L1 cache 3065, a signal to the L2 cache 3066, a signal to the RAM 3066, and optionally a signal to mass storage or other device 3068. Memory address control must be controlled through control (and optional status).

만약 프로세스(A,B,C) 중 하나가 바이러스 또는 기타 악성 코드를 포함하고 실행하는지는 문제가 되지 않는다. 오염될 수 있는 공통 프로세스 환경 엘리먼트는 또다른 프로세스에 의해 사용되기 전에 삭제되고, 리셋되거나, 복구되며, 보유될 필요가 있는 프로세스 환경의 엘리먼트는 공유되지 않는다. 따라서 프로세스(B)가 바이러스를 실행하는 경우에, 이러한 실행의 효과는 프로세스(B)에 할당된 메모리에서만 보이게 된다. 일단 B 프로세스가 완료 또는 에러에 의해 종료되면, 메모리에 할당된 B는 리셋되고 오염은 다른 프로세스들로 진행하지 않는다. 그러나 일반적으로 (예컨대 캐시 메모리에 저장된 내용을 제외한) 프로세서의 내부 성분들은 (지시 또는 관련 데이터의 지시와 같은) 다음 프로세스로서 또다른 프로세 스의 잔류 엘리먼트를 보유하지 않거나 이러한 잔류 엘리먼트는 그 자체로 해를 끼치지 않거나 오염을 도입하도록 동작하지 않는다. 코드가 (레지스터 등과 같은) 프로세서 엘리먼트로 전이하는 경우 이러한 코드는 보유하지 않는 것처럼 관련되지 않으며 다음 코드는 잔류 엘리먼트를 유효하게 소제하지 않지만, 저장 장치가 존재하는 경우 엘리먼트는 플러싱되거나 리셋되거나 고지되고 신뢰된 원래의 상태로 된다. 본 발명의 특징과 함께 사용되고 해로운 잔류 피쳐를 갖는 종래 프로세서 아키텍쳐 및 장치의 경우에, 엘리먼트는 제거되거나 리셋될 수 있다. 이는 타이밍 어드레스 제어 및 스위칭 로직을 고려할 수 있다. 예컨대, 제거 지시 또는 코드는 잠재적으로 해로운 지시 또는 프로세스 이후에 도입될 수 있으며, 이러한 해가 이전에 예견되지 않는 경우, 삭제 또는 리셋 프로세스가 또다른 프로세스에 의해 지배된 모든 프로세스들 사이에 도입될 수 있다. 미래에 개발될 프로세서 아키텍쳐를 위해, 삭제 또는 리셋 피쳐는 프로세서 아키텍쳐 내부에 구성되어 입력 스트림 내에 제거 또는 리셋 프로세스를 삽입할 필요없이 프로세스의 수율을 향상시킨다. It does not matter if one of the processes (A, B, C) contains and runs a virus or other malicious code. Common process environment elements that may be contaminated are not shared in elements of the process environment that need to be deleted, reset, recovered, or retained before being used by another process. Thus, when process B executes a virus, the effect of this execution is only visible in the memory allocated to process B. Once the B process finishes by completion or error, B allocated to the memory is reset and contamination does not proceed to other processes. In general, however, internal components of the processor (except contents stored in cache memory, for example) are the next process (such as an indication of an instruction or related data) that do not carry residual elements of another process or such residual elements themselves. It does not harm or operate to introduce pollution. If code transitions to a processor element (such as a register), such code is not relevant as if it does not hold and the following code does not clean up the remaining elements effectively, but if storage exists then the element is flushed, reset or notified and trusted Return to its original state. In the case of conventional processor architectures and apparatus that are used in conjunction with the features of the present invention and have detrimental residual features, the elements may be removed or reset. This may take into account timing address control and switching logic. For example, a removal instruction or code can be introduced after a potentially harmful instruction or process, and if such a solution is not foreseen before, a delete or reset process can be introduced between all processes dominated by another process. have. For processor architectures to be developed in the future, a delete or reset feature is configured inside the processor architecture to improve process yield without the need to insert a remove or reset process into the input stream.

일단 프로세서(3004)가 출력(3052)을 발생시키면, 이들은 프로세서 옆의 입력 포트(3070)에 의해 수신되고 TACS 로직에 의해 처리되어 조합된 출력 스트림(3052)을 비직렬화 하고 적절한 출력 명령을 제공한다. 비록 출력 스트림(3038)이 입력 스트림(3036)의 명령을 매칭시키는 명령을 갖는 것으로 예시되었지만, 매칭 명령은 태그 또는 다른 프로세스 식별기가 식별하도록 활용되어 특정 출력이 유지되게 처리된다. Once processor 3004 generates output 3052, they are received by input port 3070 next to the processor and processed by TACS logic to deserialize the combined output stream 3052 and provide appropriate output instructions. . Although the output stream 3038 is illustrated as having instructions to match the instructions of the input stream 3036, the matching instructions are utilized to identify tags or other process identifiers and are processed to maintain a particular output.

특정 타이밍, 어드레스 제어 및 스위칭 로직(TACS 로직)(3030)이 사용되는 방식에 대한 특정 실시예가 설명되었지만, 당업자는 대안적인 구조와 방법이 본 발명의 대안적인 실시예를 구현하는데 사용될 수 있다는 것을 알 것이다. 이러한 대안예는 어드레스 범위 제어를 이용한 컴퓨터 내의 다수의 처리들 간의 분리의 제어 정도를 유지하기 위한 시스템의 대안적인 실시예를 도시하는 도 23에 도시되어 있다. 프로세서, 제어기 또는 중앙 처리 장치와 같은 컴퓨터 프로그램 명령 또는 기타 명령을 처리하기 위한 로직일 수 있는 프로세서 로직(3080)은 일부 내부 어드레스 제어로직(3081)을 포함한다. 프로세서 어드레스 제어 로직의 다양한 형태가 공지되어 있으며 본 명세서에서 상세히 설명하지는 않는다. 독립 어드레스 제어 및 분리 로직(3082)이 제공되거나 본 발명의 어드레스 분리 및 제어 로직의 피쳐들이 프로세서의 어드레스 제어 로직에 포함되거나 프로세서(3080) 내에 제공된다. 어드레스 분리 및 제어 로직(AICL)(3082)은 어드레스 제어 로직(3081) 및 필요에 따라 프로세서 및 어드레싱 가능 메모리/캐시/저장 서브시스템(들)에 의해 제어 및 상태 신호를 통과한다. 어드레싱 가능 메모리/캐시/저장 장치(3085)는 제한되지 않은 예로서 RAM, ROM, 캐시 메모리, 하드 디스크 드라이브, 또는 임의의 다른 저장 장치 또는 메모리 맵핑된 입/출력 장치일 수 있다. 입력은 AICL(3082)에 의해 수신되고 어드레스 제어 로직(3081) 및 어드레싱 가능 메모리(3085)와 통신할 수 있는 소정의 제어 신호(3083)를 생성하도록 처리된다. 선택적으로, AICL(3082)은 어드레스 제어 로직(3081)과 통신할 수 있는 소정의 제어 신호(3083)를 발생시키며 어드레스 제어 로직은 추가의 제어신호(3089)를 (선택적으로 상태 신호를 수신하여) 어드레싱 가능 메모리(3085)와 통신시킨다. AICL(3082)의 구조는 대체로 처리 될 입력(3086)의 특성에 의존하고 입력에 기초하여 통계적으로 한정되거나 동적으로 결정될 수 있다. 출력(3087)은 바이러스 또는 기타 악성 코드의 실행과 같은 비정상적인 처리 상황이 선택적으로 억제되고 발생된 에러 또는 예외 조건(또는 시스템 고장)이 발생하지 않는 경우를 제외하고, 종래 프로세서의 대응 입력을 위해 생성된 동일한 출력일 수 있다. Although specific embodiments of how specific timing, address control, and switching logic (TACS logic) 3030 are used, those skilled in the art will recognize that alternative structures and methods may be used to implement alternative embodiments of the invention. will be. This alternative is shown in FIG. 23, which shows an alternative embodiment of a system for maintaining a degree of control of the separation between multiple processes in a computer using address range control. Processor logic 3080, which may be logic for processing computer program instructions or other instructions, such as a processor, controller, or central processing unit, includes some internal address control logic 3081. Various forms of processor address control logic are known and are not described in detail herein. Independent address control and separation logic 3082 is provided or features of the address separation and control logic of the present invention are included in or included in the processor's address control logic. Address Separation and Control Logic (AICL) 3082 passes control and status signals by address control logic 3081 and, as needed, the processor and addressable memory / cache / storage subsystem (s). Addressable memory / cache / storage device 3085 may be, but is not limited to, RAM, ROM, cache memory, hard disk drive, or any other storage device or memory mapped input / output device. The input is processed to generate a predetermined control signal 3083 that is received by AICL 3082 and can communicate with address control logic 3081 and addressable memory 3085. Optionally, AICL 3082 generates a predetermined control signal 3083 that can communicate with address control logic 3081 and the address control logic generates additional control signals 3089 (optionally by receiving a status signal). Communicate with the addressable memory 3085. The structure of the AICL 3082 generally depends on the characteristics of the input 3086 to be processed and can be statistically defined or dynamically determined based on the input. The output 3087 is generated for the corresponding input of a conventional processor, except that abnormal processing situations such as the execution of viruses or other malicious code are selectively suppressed and no error or exception condition (or system failure) has occurred. Can be the same output.

도 22의 실시예를 다시 참조하면, 일시적인 멀티플렉싱에 대해 강조되었고, 독립 프로세스 또는 처리 스트림이 다른 제어 로직의 제어 회로에 의해 독립되고 분리되게 유지되었다. 다수의 프로세스들이 물리적 처리 공간 변수 및 그 조합에 기초하거나 본 명세서에서 설명한 다차원 가상 처리 공간에 기초하여 구분되거나 분리될 수 있다. 완전한 분리 또는 제어된 분리 정도에 대한 장점 및 이유는 본 명세서에서 설명되었지만 독립 변수 또는 파라미터 세트에 대해 한정될 수 있는 다차원 처리 공간이 되었던 것처럼 반복되지 않는다.Referring again to the embodiment of FIG. 22, emphasis has been placed on transient multiplexing, and independent process or processing streams have been kept independent and separated by control circuitry of other control logic. Multiple processes may be divided or separated based on physical processing space variables and combinations thereof or based on the multidimensional virtual processing space described herein. The advantages and reasons for the degree of complete separation or controlled separation are not repeated as described herein but have become a multidimensional processing space that can be defined for independent variables or parameter sets.

일 실시예에서, 하나의 시간 슬라이스 또는 기간 동안 실행되는 제어 환경은 이전의 시간 슬라이스 또는 기간 동안 제어되지 않은 프로세스에 의해 파일링되거나 남겨진 동작을 위한 요청을 수신한다. 요청은 비록 또다른 프로세스와 공유되더라도 프로세스를 오염시킬 수 없는 방식으로 이루어지거나 파일링된다. 예컨대, 실행가능한 코드를 수행할 수 없는 단일 비트 또는 적은 수의 비트들은 프로세서 또는 다른 로직 내의 하나 또는 여러 레지스터 내에 저장된다. 제어 환경은 이들 레지스터를 보거나 질문하며 요청이 또다른 프로세스에 의해 이루어졌다는 것을 인식할 때 (레지스터의 하나의 비트 또는 적은 수의 비트와 같이) 플래그 또는 다른 지시기(indicator)를 이용하여 동작 또는 능력을 위한 액세스 또는 허용을 부정하거나 인정하여 동작 또는 능력이 다음 요청 프로세스가 계산 환경을 사용할 때 이용할 수 있게 한다. 동작 또는 능력은 대체로 계산 환경이 제어 환경이 다른 프로세스 또는 데이터가 오염에 노출될 수 있는 동작 또는 조건을 허용하지 않는 단서를 제공할 수 있는 동작 또는 능력일 수 있다. 허용된 동작 또는 능력은 예컨대 세트 또는 규칙, 규정, 테이블, 로직 또는 기타 방식으로 정의될 수 있다. 일부 실시예에서, 허용 또는 액세스의 인정은 명백한 계산 환경 구성을 하드 디스크 드라이브 또는 기타 대용량 저장 장치와 같은 저장 장치, 랜덤 액세스 메모리와 같은 모든 또는 일부 프로세서 관련 메모리 서브시스템, 캐시 메모리와 같이 하나 이상의 프로세서 관련 빠른 중간 메모리의 일부 또는 모두를 가시적이고 액세스가능하게 하도록 바꾸며, 입력 또는 출력 포트를 이용하거나 감추며, 네트워크 인터페이스를 이용하거나 감추며, 및/또는 장치, 회로, 로직, 작동, 하드웨어 또는 요청 프로세스에 이용가능하거나 이용가능하지 않은 소프트웨어 세트의 엘리먼트를 감추고, 제한하고, 개방하고, 폐쇄하거나 만든다. 하나의 엘리먼트 또는 능력에 대한 허용 또는 액세스의 인정은 제어 프로세스가 다른 프로세스들에 대한 허용 또는 액세스를 제한하거나 거부하여 적절한 등급의 분리가 유지되게 할 것을 반드시 요구할 수 있다. 허용 또는 액세스에 대한 인정 또는 거부는 예컨대 폐쇄와 같은 물리적 변화 또는 물리적 경로를 생성하거나 장치 또는 회로에 전원을 공급하는 스위치 또는 스위치 세트, 계산 환경 내의 물리적 하드웨어 로직 또는 소프트웨어 또는 펌웨어를 바꾸는 논리적 변화를 형성하거나, 상이한 가상, 논리적 또는 물리적 처리 또는 계산 환경을 수정하거나 생성하는 임의의 다른 방식으로 이루어진다. 이들 결합은 규칙, 규정, 테이블, 로직 또는 임의의 다른 방식에 따라 설정될 수 있지만, 제어되지 않은 프로세스에 의한 수정으로부터 보호되도록 설정되며 일부 실시예에서는 특정 관리자 특권을 요구할 수 있다. 본 명세서에서 설명한 바와 같이, 계산 환경에 대한 이러한 수정 중 일부는 다이내믹 스위칭 및 구성 스트럭쳐의 특징 및 본 명세서에 개시된 방법들을 이용하거나 다른 스트럭쳐와 방법들을 이용하여 설정될 수 있다. In one embodiment, the control environment executed during one time slice or period receives a request for an operation filed or left by an uncontrolled process during a previous time slice or period. Requests are made or filed in such a way that they cannot be polluted, even if they are shared with another process. For example, a single bit or a small number of bits that cannot execute executable code are stored in one or several registers in a processor or other logic. The control environment views or queries these registers and uses flags or other indicators (such as one bit or a small number of registers) to recognize an operation or request made by another process. Denying or acknowledging access or permission to allow the operation or capability to be made available to the next request process when using the computing environment. An operation or capability may be an operation or ability in which the computing environment may provide clues that do not allow an operation or condition in which the control environment may expose other processes or data to contamination. Allowed actions or capabilities may be defined, for example, in sets or rules, rules, tables, logic or other ways. In some embodiments, granting permission or granting an explicit computing configuration may include storage devices such as hard disk drives or other mass storage devices, all or some processor-related memory subsystems such as random access memory, one or more processors such as cache memory. Change some or all of the relevant fast intermediate memory to be visible and accessible, use or hide input or output ports, use or hide network interfaces, and / or use in devices, circuits, logic, operations, hardware or request processes Hide, limit, open, close or make elements of the software set available or unavailable. Granting permission or access to one element or capability may necessarily require that the control process restricts or denies permission or access to other processes so that an appropriate degree of separation is maintained. Granting or denying permission or access forms a physical change, such as a closure, or a switch or set of switches that creates a physical path or powers a device or circuit, or a logical change that changes the physical hardware logic or software or firmware within the computing environment. Or any other way of modifying or creating different virtual, logical or physical processing or computing environments. These combinations can be set according to rules, rules, tables, logic or any other manner, but are set to be protected from modification by uncontrolled processes and in some embodiments may require specific administrator privileges. As described herein, some of these modifications to the computational environment can be set using the features of the dynamic switching and configuration structure and the methods disclosed herein or using other structures and methods.

공유될 필요가 있는 장치들은 메모리 서브시스템(통상적으로 RAM) 및 프로세서와 메모리 서브시스템 사이의 (통상적으로 프로세서 칩 또는 칩 세트 상의 하나 이상의 캐시 메모리인) 중간의 고속 메모리이다. 이들 메모리의 상이한 부분은 어드레스 제어 로직 및 상기 개시된 방법뿐만 아니라 어드레스 할당, 마스터, 데이터 및 지시 버스 이용가능성, 서술 테이블 등을 구성하고 제어하기 위한 공지된 기술을 이용하여 상이한 프로세스들에 가시적으로 될 수 있다. 본 발명의 일 실시예에서, 메모리 또는 레지스터 내의 데이터 구조에 저장될 수 있는 것과 같은 서술 테이블은 일반적으로 다른 프로세스들로부터 감춰지며 제어 프로세스에만 가시적이다. 또다른 실시예에서, 서술 테이블의 일부는 감춰진 채 유지되지만 다른 부분은 선택적으로 하나 이상의 프로세스들에 가시적이며, 다른 실시예에서 독립 서술 테이블이 유지되고 제어는 가시적인 경우 가시성이 프로세스의 특정 지시 또는 일부에만 전이되는 프로세스들에 선택적으로 이용가능하게 활동한다. 통상적으로, 이러한 서술 테이블은 모든 프로세스들에 가시적이고 액세스가능하며 이러한 가시성 과 접근성은 악성 코드가 이러한 서술 테이블의 내용을 바꿔 계산 환경을 바꾸고 손상시킬 수 있게 하는 기회를 제공한다. 제어 프로세스를 제외한 계산 환경의 기타 성분들 또는 메모리 어드레스와 관련한 서술 테이블에 대한 액세스의 분리, 감춤 또는 거부는 계산 또는 처리 환경이 보호될 수 있는 또다른 방식이다. 적어도 하나의 환경에서, 구성 정보는 판독 전용 메모리에서 유지되고 (제어 프로세스의 일부 실시예에서) 제어되지 않은 프로세스에 제공된 작동 시스템 또는 애플리케이션 프로그램은 이러한 저장된 구성 정보를 조작할 수 없다.Devices that need to be shared are memory subsystems (typically RAM) and high speed memory intermediate between the processor and the memory subsystem (typically one or more cache memories on a processor chip or chip set). Different portions of these memories can be made visible to different processes using address control logic and known techniques for constructing and controlling address allocation, master, data and indication bus availability, description tables, etc., as well as the methods disclosed above. have. In one embodiment of the present invention, a description table, such as may be stored in a data structure in a memory or register, is generally hidden from other processes and is only visible to the control process. In another embodiment, a portion of the description table remains hidden while other portions are optionally visible to one or more processes, while in other embodiments visibility is a specific indication of a process or when control is visible. It is optionally available to processes that are only transitioning to some. Typically, these description tables are visible and accessible to all processes, and this visibility and accessibility provide an opportunity for malicious code to alter the contents of these description tables to alter and corrupt the computational environment. Separation, hiding or denying access to the description table with respect to memory addresses or other components of the computing environment except the control process is another way in which the computing or processing environment can be protected. In at least one environment, the configuration information is maintained in read-only memory and in some embodiments of the control process the operating system or application program provided to the uncontrolled process cannot manipulate this stored configuration information.

본 발명의 이들 및/또는 기타 실시예들은 처리 환경 내의 다양한 버스, 입/출력 포트 또는 장치, 환경 내로 로딩된 애플리케이션 프로그램 소프트웨어, 처리 환경 내의 작동 시스템 또는 작동 시스템 엘리먼트, 또는 이들 또는 다른 조합에 대한 제어 가시성 및/또는 액세스일 수 있다. 적어도 일부 실시예들에서, 선택된 하드웨어 또는 소프트웨어 성분의 존재(및 이로 인한 액세스의 거부)는 작업 시스템에 검출될 수없게 보장된다. 일부 실시예에서, 이는 (작업 시스템의 신뢰된 판독 전용 버전의 내장을 포함한) 작업 시스템의 수정 및/또는 하드웨어 및/또는 펌웨어 레벨에서의 구성 제어에 의해 보장되는 것이 바람직하다. 일부 실시예에서, 다이내믹 기반 상에 각각의 처리 환경을 구성하거나 재구성하는 물리적 또는 논리적 독립 BIOS가 제공된다. 다른 실시예에서, 기본적인 BIOS 구성이 설정되고 구성을 변화시켜 동적으로 설정된 특정 능력을 추가한다. These and / or other embodiments of the invention control various buses, input / output ports or devices in a processing environment, application program software loaded into the environment, operating systems or operating system elements within the processing environment, or combinations thereof or other combinations. May be visibility and / or access. In at least some embodiments, the presence of the selected hardware or software component (and thus denial of access) is guaranteed to be undetectable to the working system. In some embodiments, this is preferably ensured by modification of the work system (including the embedding of a trusted read-only version of the work system) and / or configuration control at the hardware and / or firmware level. In some embodiments, a physical or logical independent BIOS is provided that configures or reconfigures each processing environment on a dynamic basis. In another embodiment, the basic BIOS configuration is set and changes in configuration to add specific capabilities set dynamically.

예컨대, 특정 실시예에서, 어드레스 위치 또는 범위들은 작동 시스템 층 아래의 소정의 레벨 또는 층으로 통계적으로 또는 동적으로 한정되어 (마이크로소프 트 윈도우즈, 리눅스, 애플 컴퓨터, 또는 기타 작동 시스템과 같은) 작동 시스템이 정의(definition)를 바꾸거나 어떠한 영향도 못미치게 하고 정의가 작동 시스템이 무엇을 보는지를 작동 시스템만이 볼 수 있게 한다. 예컨대, 낮은 레벨 프로그램 또는 프로세스는 작동 시스템, 애플리케이션 프로그램 같은 것에 의해 액세스될 수 없고 잠재적으로 악성 코드를 포함할 수 있는 데이터에 액세스할 수 없는 프로그램 또는 프로세스일 수 있다. 일부 실시예에서, 낮은 레벨 정의는 (감춰진 엘리먼트가 메모리 어드레스 위치인 경우) 어드레스 제어 로직에 의해, TACS 제어에 의해, 심지어 메인 프로세서 자체에 의해, 또는 프로세스에 포함되거나 프로세서와 통신하며 독립 로직 엘리먼트로서 동작하는 기타 로직에 의해 보호된 BIOS를 이용하여 달성될 수 있다. TACS 제어가 포함된 경우, 예컨대 시간 분리 멀티플렉싱된 이벤트에 배타적으로 이용될 수 있는 특정 어드레스 범위를 정의하는 전체 서술을 생성할 수 있다. 대안적인 제어기는 기타 N-차원 가상 처리 공간에 이용할 수 있는 비-일시적으로 정의된 분리 등에 기반한 어드레스 분리를 정의할 수 있다. For example, in certain embodiments, address locations or ranges may be statistically or dynamically defined at a predetermined level or layer below the operating system layer, such as a Microsoft Windows, Linux, Apple computer, or other operating system. Change this definition or make no impact and only the operating system sees what the operating system sees. For example, a low level program or process may be a program or process that is inaccessible by an operating system, an application program or the like and that is inaccessible to data that may potentially contain malicious code. In some embodiments, the low level definition is implemented by the address control logic (when the hidden element is a memory address location), by the TACS control, even by the main processor itself, or by being included in or communicating with the processor and as an independent logic element. It can be achieved using a BIOS protected by other logic in operation. When TACS control is included, it is possible to generate a full description that defines a particular address range that can be used exclusively for, for example, time separated multiplexed events. Alternative controllers may define address separation based on non-transitory defined separation and the like available to other N-dimensional virtual processing spaces.

일 실시예에서, 테이블은 각각의 상이한 프로세스에 대한 메모리 어드레스 범위 이용가능성을 정의하고 이러한 정의는 논리적이거나 물리적일 수 있다. 일 실시예에서, BIOS는 테이블 형태의 맵핑을 보유한다. 예컨대, 만약 계산 또는 처리 시스템의 하드웨어에 이용할 수 있는 전체 RAM 메모리의 1 기가바이트가 존재한다면, 보다 낮은 레벨 제어 프로세스는 작동 시스템이 미리 설정되거나 동적으로 설정된 예컨대 256 메가바이트와 같은 메모리 양만을 보게 한다. 낮은 레벨 프로그램 또는 제어는 제 1 프로세스와 관련한 제 1 마이크로소프트 윈도우즈 작동 시 스템 및 제 2 프로세스와 관련한 제 2 마이크로소프트 윈도우즈 작동 시스템과 같은 작동 시스템의 상이한 실증(instantiation)에 이용할 수 있는 상이한 양 및 상이한 메모리 어드레스 범위를 가질 수 있다.In one embodiment, the table defines memory address range availability for each different process and this definition may be logical or physical. In one embodiment, the BIOS maintains a table-like mapping. For example, if there is 1 gigabyte of total RAM memory available to the hardware of the computing or processing system, the lower level control process causes the operating system to see only a predetermined or dynamically set amount of memory, such as 256 megabytes, for example. . The low level program or control is different and different amounts available for different instances of the operating system, such as the first Microsoft Windows operating system with respect to the first process and the second Microsoft Windows operating system with respect to the second process. It may have a memory address range.

종래 시스템 및 방법은 통상적으로 모든 프로세스가 상호작용하지만 프로그램 코드가 적절히 설계된 경우가 아니면 상호작용하지 않고 악성, 해커, 또는 바이러스성 코드가 유입된 경우 상이한 프로세스와 데이터를 오염에 노출시키는 단일 "모래 상자(sand box)" 또는 "비누 그릇(bowl of soup)"를 사용한다. 본 발명의 시스템과 방법의 한가지 장점은 각각의 프로세스가 자체 모래 박스 또는 빈 삭제 박스(clean empty bowl)를 사용하고 이로써 처리 또는 계산 환경에서 실행되거나 실행되도록 시도된 악성, 해커, 또는 바이러스성 코드에 존재하는 경우라도 오염이 발생할 수 없다는 것이다. Conventional systems and methods typically have a single "sandbox" that interacts with all processes but does not interact unless program code is properly designed and exposes different processes and data to contamination if malicious, hacker, or viral code is introduced. (sand box) or "bowl of soup." One advantage of the systems and methods of the present invention is that each process uses its own sand box or clean empty bowl, thereby allowing malicious, hacker, or viral code to be executed or attempted to run in a processing or computational environment. If present, no contamination can occur.

제어 프로세스와 또다른 프로세스 사이에 통과하는 제한된 메시지를 포함하는 상기 설명한 기술을 사용하여 (프로세서에 남겨진 조건, 상태, 플래그 또는 기타 지시기(indicator)를 제외하고) 제어프로세스가 프로세스에 존재하지 않지만 다른 프로세스가 실행되더라도 제어 프로세스가 다른 프로세스를 유효하게 제어할 수 있다. 제어 프로세스는 다른 프로세스가 액세스가 허용된 처리 자원을 사용한 후 원래 처리 환경을 삭제, 플러싱, 리셋 또는 재설정할 수 있다.Using the techniques described above, including limited messages passing between the control process and another process (except for conditions, status, flags, or other indicators left in the processor), the control process does not exist in the process, but other processes Even if is executed, the control process can effectively control another process. The controlling process may delete, flush, reset or reset the original processing environment after another process has used the processing resources to which it has been granted access.

설명한 것처럼 메모리 어드레스 범위를 제어함으로써 메모리의 부분들을 선택적으로 감추는 능력은 계산 또는 처리 환경 내에 또는 외부의 메모리 맵핑된 장치 또는 서브시스템에 적용될 수 있다. 본 발명의 시스템 및 방법은 기타 장치, 회로, 소 프트웨어 및 기타 장점을 발휘할 수 있는 것들을 선택적으로 유사하게 감출 수 있다. 예를 들어, 본 발명의 실시예는, 데이터(또는 프로그램)에 숨겨진 소정의 악성 코드가 실행되게 하고 계산 및 처리 환경의 오염을 유발할 수도 있는 소정의 처리 소자에 대한 데이터를 노출시키기 전에 사용자 데이터를 (하드디스크 드라이브 비휘발성 저장 수단과 같은) 제1 저장 위치에서 다른 분리된 저장 위치(종종 폭발 룸으로 언급됨)로 사용자 데이터를 이동시키기 위한 필요 또는 요구를 설명하였다. 그러나 메모리, 저장 장치 또는 로직의 일부의 보장된 제어 분리를 제공하는 본 발명의 실시예에서, 이러한 분리된 저장 장치로의 데이터의 복사 또는 이동은 요구되지 않으며, 그로 인해, 시간 소모 단계를 제거하는 것을 이해해야 한다. 필수적으로, 본 발명의 이러한 실시예는 처리 환경을 구성하여 데이터 아이템 그 자체는 제 위치에 분리되고, 선택적으로 소정의 부가 메모리 또는 다른 저장 장치가 일시적인 작업 저장을 위해 또는 특정 프로세스에 대해 요구되거나 필요할 수도 있는 다른 목적을 위해 한정될 수도 있다. 처리 전 안전한 저장을 위한 복사 및 안전한 저장으로부터의 재복사 단계가 결론적으로 제거된다. 데이터의 복사는 실행 전에 행해질 수도 있어서 프로세스에 문제가 있는 경우, 원래의 데이터 항목이 유지되고 추가로 오염되지 않게 보장할 수도 있다. 이러한 사본을 유지하는 것은 예를 들어, 항목이 제거가 가능한 오염 또는 바이러스의 조사 및/또는 제거되게 한다. As described, the ability to selectively hide portions of memory by controlling a range of memory addresses can be applied to memory mapped devices or subsystems within or outside the computing or processing environment. The systems and methods of the present invention can selectively similarly hide other devices, circuits, software, and the like that can exert other advantages. For example, embodiments of the present invention may provide user data prior to exposing data for a given processing element that may cause certain malicious code hidden in the data (or program) to run and cause contamination of the computational and processing environment. A need or desire has been described for moving user data from a first storage location (such as a hard disk drive nonvolatile storage means) to another separate storage location (often referred to as an explosion room). However, in embodiments of the invention that provide guaranteed controlled separation of portions of memory, storage, or logic, copying or moving data to such separate storage is not required, thereby eliminating time-consuming steps. You must understand that. Essentially, this embodiment of the present invention constitutes a processing environment such that the data item itself is separated in place, and optionally some additional memory or other storage device is required or needed for temporary work storage or for a particular process. It may be limited for other purposes that may be. The copying step for safe storage before processing and the recopy step from safe storage are finally eliminated. Copying of the data may be done before execution to ensure that if there is a problem with the process, the original data item is maintained and not further corrupted. Maintaining such a copy may, for example, allow the item to be examined and / or removed for possible contamination or virus.

본 발명의 다른 실시예는 계산 환경으로 및 그로부터, 또는 계산 환경의 특정예로 및 그로부터 동적으로 스위칭될 수도 있는 메모리 또는 저장 장치를 제공할 수도 있다. 이는 복사의 필요성을 제거하며, 및/또는 택일적 메카니즘을 제공하여 다수의 소거된 메모리 중 하나가 교환될 수 있게 하는 반면 앞선 프로세스에 대한 노출로부터 오염될 수도 있는 다른 메모리가 개별 프로세스에 의해 소거 또는 플러싱되는 동안 일시적으로 교환될 수 있게 한다. 본 발명의 다른 실시예는 논리적으로 브레이킹 또는 세그먼팅 메모리를 다른 부분들에 제공할 수도 있는데, 각각은 상이한 마스터 템플릿을 가지고 있어서 상이한 메모리 어드레스 범위가 처리 또는 계산 환경에서 임무를 처리하기 위해 저장된 완전히 새로운 본래의 마스터 템플릿을 갖게 한다. Another embodiment of the present invention may provide a memory or storage device that may be dynamically switched to and from a computing environment, or to and from a specific example of the computing environment. This eliminates the need for copying, and / or provides an alternative mechanism that allows one of a number of erased memories to be exchanged while other memories may be erased or erased by individual processes that may be contaminated from exposure to earlier processes. Allows a temporary exchange while flushing. Other embodiments of the invention may logically provide breaking or segmenting memory to other parts, each having a different master template so that different memory address ranges are stored entirely for processing tasks in a processing or computing environment. Have the original master template.

다른 실시예에서, 계산 환경은 상이한 물리적 장치의 동일한 영역 내의 하나의 어드레스 범위에서 동작 시스템 또는 템플릿을, 그리고 다른 어드레스 영역에서 사용자 데이터를 발생 또는 생성함으로써 생성될 수도 있다. 사실, 마스터 또는 다른 템플릿 및 데이터를 갖는 다수의 계산 환경이 이러한 상태에서 생성될 수도 있다. 각각은 완전한 논리적으로 분리된 환경인데, 이는 낮은 레벨의 구성 또는 다른 제어가 정의된 메모리 어드레스 영역 밖에서 어떠한 상호 작용도 보장하지 않기 때문이다. 하드웨어, 펌웨어, 소프트웨어 또는 이들의 소정 조합에서 한정된 수퍼바이저 제어는 어떠한 오염도 발생할 수 없도록 각각의 처리 환경을 제어하고, 외부 컴포넌트에 스위칭하고, 및 다수의 처리 환경을 관리하도록 하이퍼-바이저를 제공할 수도 있다. 일 실시예에서, 이러한 수퍼바이저 제어 또는 하이퍼-바이저가 오염을 방지하는 낮은 레벨의 구성을 무시하거나 변경할 수 없다. 외부 관리 프로세스가 소정의 소프트웨어 또는 펌웨어 컴포넌트가 로딩되고, 업데이트되거나 필요에 따라 소거되도록 제공될 수도 있다. In other embodiments, the computing environment may be created by generating or generating an operating system or template in one address range within the same area of different physical devices, and user data in another address area. In fact, a number of computing environments with master or other templates and data may be created in this state. Each is a completely logically separate environment because low level configurations or other controls do not guarantee any interaction outside the defined memory address area. Supervisor control defined in hardware, firmware, software or any combination thereof may provide a hyper-visor to control each processing environment, switch to external components, and manage multiple processing environments such that no contamination occurs. . In one embodiment, such supervisor control or hyper-visor cannot ignore or change the low level configuration to prevent contamination. An external management process may be provided such that certain software or firmware components are loaded, updated or erased as needed.

다양한 방법이 메모리, 저장 장치 또는 프로세서로 소프트웨어 또는 코드의 신뢰 부분을 생성 또는 복사하는데 사용될 수도 있음을 본 설명에서 이해해야 할 것이다. 본 발명의 일 실시예에서, 이는 템플릿 및 마스터 템플릿으로 언급된다. 다양한 보호된 복사 방식이 본 명세서에 설명된 대로 사용될 수도 있다. 프로세스로부터 및/또는 휘발성 RAM 메모리로부터 (하드디스크 같은) 비휘발성 메모리로 시스템 상태를 저장하는 에너지 보존 대기, 동면, 재저장, 웨이크업 특성 중 일부를 지원하는 시스템 및 프로세서를 동작하기 위해, 이러한 특성은 템플릿을 생성하도록 사용될 수도 있는데, 템플릿은 저장 장치로부터 메모리 또는 프로세서로 신뢰된 템플릿을 기록하기 위해 사전 저장된다. 이러한 방식에서, 템플릿은 이러한 특성을 지원하는 현재의 동작 시스템 및 하드웨어의 형태 및 이와 호환가능한 형태이다. It will be understood in the present description that various methods may be used to create or copy trusted portions of software or code to memory, storage, or processors. In one embodiment of the invention, this is referred to as a template and a master template. Various protected copy schemes may be used as described herein. These characteristics are used to operate systems and processors that support some of the energy conservation standby, hibernation, resave, and wake-up features that store system state from processes and / or from volatile RAM memory to non-volatile memory (such as hard disks). May be used to create a template, which is pre-stored to record a trusted template from storage to memory or a processor. In this way, the template is in the form of and compatible with current operating systems and hardware that support this feature.

시스템 구성 및 동작 시나리오의 다양한 실시예가 본 명세서에 설명된다. 예를 들어, 실시예들이 설명되며, 여기서 각각이 할당된 계산 또는 처리 환경을 갖는 다수의 물리적 프로세서가 존재한다. 도9와 관련하여 설명된 실시예는 사용자 인터페이스 계산 환경, 제어 및 스위칭 계산 환경, 보호된 저장 계산 환경, 및 적어도 하나의 사용자 계산 환경을 확인하였다. 도10의 실시예에서, 시스템은 데스크탑 및 사용자 인터페이스 계산 환경 처리 유닛, 제어 및 스위칭 계산 환경 처리 유닛, 분리된 처리 유닛 계산 환경, 보호된 저장 장치 계산 환경, 및 분리된 처리 유닛 계산 환경을 포함하였다. 단일(또는 작은 세트의) 프로세서가 다중화 방식으로 사용되어, 더 많은 세트의 프로세서가 물리적 하드웨어 및/또는 소프트웨어 컴 포넌트의 더 작은 세트를 사용하여 실행될 수 있게 한다. 소정의 프로세스에 대한 본 발명의 시스템 및 방법의 융통성 및 적응성, 그리고 특정하게 설명된 프로세스가 실례라는 것이 강조되었지만, 요구되는 분리를 유지하면서, 특정하게 거론되거나 식별된 프로세스의 일부의 기능 및 동작이 동일한 프로세스에서 실행되도록 그룹화될 수도 있음을 강조할 가치가 있다. 프로세스의 조합 또는 그룹화는 데스크탑 및 사용자 인터페이스 처리 환경, 비디오 처리 환경, 및 제어 및 스위칭 환경과 같은 소정의 신뢰된 제어 또는 수퍼바이저 연산에 대한 특정한 유틸리티를 가질 수도 있지만, 하나 이상의 사용자 데이터 처리 환경으로부터 이러한 수퍼 또는 그룹화된 처리 환경의 분리를 유지한다. Various embodiments of system configurations and operating scenarios are described herein. For example, embodiments are described, where there are a number of physical processors, each with an assigned computing or processing environment. The embodiment described in connection with FIG. 9 identified a user interface computing environment, a control and switching computing environment, a protected storage computing environment, and at least one user computing environment. In the embodiment of Figure 10, the system included a desktop and user interface computing environment processing unit, a control and switching computing environment processing unit, a separate processing unit computing environment, a protected storage computing environment, and a separate processing unit computing environment. . A single (or small set) of processors is used in a multiplexed manner, allowing more sets of processors to be executed using a smaller set of physical hardware and / or software components. While it has been emphasized that the flexibility and adaptability of the systems and methods of the present invention with respect to certain processes, and that the specifically described processes are illustrative, the function and operation of some of the specifically discussed or identified processes may be retained while maintaining the required separation. It is worth stressing that they can also be grouped to run in the same process. The combination or grouping of processes may have specific utilities for certain trusted control or supervisor operations, such as desktop and user interface processing environments, video processing environments, and control and switching environments, but from one or more user data processing environments Or maintain separation of grouped processing environments.

이러한 프로세스 정의 또는 그룹화의 이점은 본 발명의 다중화된 실시예, 그리고 비록 일시적인 다중화 실시예에 대해 배타적이지 않은 소정의 효율을 제공한다. 개별 프로세스의 수가 감소함에 따라, 상이한 프로세스들 사이의 스위칭의 복잡성이 감소되며, 상태를 저장 및 리로딩함으로써 및/또는 로딩 템플릿 및/또는 처리 환경의 제거에 의해 소비될 수도 있는 시간이 감소될 수도 있다. 일 실시예에서, 모든 비 사용자 데이터 프로세스들이 한정되며 단일 제어 처리에서 한정되며, 사용자 데이터 관련 처리 환경은 제어 환경으로부터 개별적으로 실행 및 유지된다. The advantages of such process definition or grouping provide some efficiency that is not exclusive to the multiplexed embodiment of the present invention, and even to the temporary multiplexed embodiment. As the number of individual processes decreases, the complexity of switching between different processes is reduced, and the time that may be consumed by storing and reloading the state and / or by removing the loading template and / or processing environment may be reduced. . In one embodiment, all non-user data processes are defined and limited in a single control process, and the user data related processing environment is executed and maintained separately from the control environment.

모든 다른 다중화된 처리 시나리오 및 이러한 실시예에 대해, (특정 포트, 디지털 신호 프로세서(DSP), 또는 소정의 다른 자원와 같은) 특정한 처리 자원, 또는 프로세스에 대해 할당된 시간의 양(프로세서 클록 사이클 또는 명령 사이클)에 대한 액세스를 위한 우선 순위가 조절될 수 있도록 상이한 프로세스에 대해 실행의 우선 순위가 할당될 수도 있음이 명백하다. 조절은 정적으로 또는 동적으로 설정될 수도 있다. 디폴트가 설정될 수도 있으며, 이어 높은 우선 순위 프로세스가 실행될 경우 변경될 수도 있다. 높은 우선 순위 프로세스는 예를 들어, 비디오 이미지 캡쳐, 컴퓨터 게임, 및 다른 프로세스와 같은 실시간 또는 의사 실시간 처리 애플리케이션을 포함할 수도 있으며, 여기서 검출가능한 지연은 사용자에게 거부될 수도 있다. 표준 또는 더 낮은 우선 순위 처리 애플리케이션은 워드 처리 애플리케이션을 포함할 수도 있으며, 여기서 매우 낮은 처리 파워가 사용자 타이핑 텍스트를 유지하는데 요구된다. 명백하게, 상이한 시스템이 계산 시스템이 전개된 사용자 및 환경의 목표에 따라 상이한 처리 우선권으로 설정될 수도 있다. For all other multiplexed processing scenarios and these embodiments, the specific processing resource (such as a specific port, digital signal processor (DSP), or some other resource), or the amount of time allocated to the process (processor clock cycles or instructions It is apparent that the priority of execution may be assigned to different processes so that the priority for access to the cycle can be adjusted. The adjustment may be set statically or dynamically. The default may be set and then changed if a high priority process is executed. High priority processes may include, for example, real-time or pseudo real-time processing applications such as video image capture, computer games, and other processes, where detectable delays may be denied to the user. Standard or lower priority processing applications may include word processing applications, where very low processing power is required to maintain user typed text. Obviously, different systems may be set to different processing priorities depending on the goals of the user and environment in which the computing system is deployed.

이미 앞서 설명된 방식은 다중 프로세스가 더 크거나 더 복잡한 프로세스로 그룹화, 합성 또는 통합될 수도 있는 방식을 강조하였다. 다른 방식은 단일 프로세스로 고려된 것을 취할 수도 있으며 실행을 위해 다중 시스템 자원을 사용할 수도 있다. 예를 들어, 다중 물리적 프로세서, 이러한 프로세서와 커플가능한 다중 메모리, 및/또는 이용가능한 자원의 다른 다수의 사본을 제공하는 시스템 구성에서, 단일 프로세스의 처리 요구는 이들 사이에서 분포될 수도 있어서, 프로세스가 원하는 출력으로 더욱 신속하게 실행되게 한다. 통상적으로, 다중 프로세서가 사용되는 프로세스는, 최종 결과를 생성하기 위해 소정의 방식으로 결합된 상이한 프로세서 및 이들의 결과 사이에서 분포될 수 있는 용이하게 한정 가능한 서브 태스크, 또는 많은 데이터 또는 많은 병렬 처리를 갖는 단순한 처리 태스크를 갖는 상대적으로 복잡한 처리 태스크일 수도 있어서, 사용하는 다중 프로세서가 전체 태스 크를 더 빠르게 완결하게 한다. 비록 근본적으로 통상적인 처리가 본 명세서에 설명된 처리과 상이하지만, SETI 처리 태스크는 다중 프로세서들 사이에서 분할된 단일의 더 큰 처리 태스크의 현저한 일예이다. The approach already described emphasizes how multiple processes may be grouped, synthesized, or integrated into larger or more complex processes. Other approaches may take what is considered a single process and may use multiple system resources for execution. For example, in a system configuration that provides multiple physical processors, multiple memories coupleable with such processors, and / or multiple other copies of available resources, the processing needs of a single process may be distributed among them so that the process Make it run faster with the desired output. In general, a process in which multiple processors are used may comprise a large number of data or many parallel processing, or easily definable subtasks that may be distributed between different processors and their results combined in a predetermined manner to produce a final result. It can be a relatively complex processing task with a simple processing task that has multiple processing tasks, so that the multiple processors you use can complete the entire task faster. Although the fundamental processing is fundamentally different from the processing described herein, the SETI processing task is a prominent example of a single larger processing task partitioned among multiple processors.

소정의 처리 태스크가 이러한 방식으로 분할되고, 재정의되고, 및/또는 분배될 수도 있다. 도16의 실시예 및 본 명세서의 다른 부분 및/또는 전술한 가상 처리 공간 및 일시적 또는 다른 비 일시적 다중화 실시예와 관련하여 설명된 플렉서블 스위칭 및 시스템 구성의 관점에서, 본 발명은 다수의 시스템 자원이 단일 프로세서 구성을 넘어 연장하는 정적으로 또는 동적으로 구성 및 해체되는 시스템 및 방법을 제공한다. 예를 들어, 일시적으로 다중화된 실시예에서, 상이한 프로세스가 단지 프로세서의 일부(프로세서는 소정의 방식으로 할당됨), 프로세스의 전용, 다중 프로세서의 전용, 또는 다중 프로세서에 대한 부분 액세스를 갖도록 구성될 수도 있다. 할당된 프로세서 액세스가 구현되는 경우, 이러한 할당은 본 발명에 대해 이미 설명된 보안 및 보호 특징과 일치를 허용한다. 프로세스에 대한 프로세서, CPU, 또는 다른 처리 또는 계산 로직의 이러한 스위칭가능한 배정은 소정의 다른 시스템 자원에 적용될 수도 있다. Certain processing tasks may be divided, redefined, and / or distributed in this manner. In view of the flexible switching and system configuration described in connection with the embodiment of FIG. 16 and other portions of this specification and / or the aforementioned virtual processing space and temporary or other non-temporary multiplexing embodiments, the present invention provides a number of system resources. Provided are systems and methods that are statically or dynamically configured and dismantled that extend beyond a single processor configuration. For example, in a temporarily multiplexed embodiment, different processes may be configured to have only part of a processor (processors are allocated in some way), dedicated to a process, dedicated to multiple processors, or partial access to multiple processors. It may be. When assigned processor access is implemented, this assignment allows for matching the security and protection features already described for the present invention. This switchable allocation of processor, CPU, or other processing or computational logic for a process may be applied to some other system resource.

본 발명의 이러한 특징은 그리드 계산, 클러스터링, 병렬 처리, 고도 병렬 처리, 대칭형 처리, 및/또는 다른 처리 시나리오에 적용될 때 특정 장점 및 유틸리티를 가질 수도 있으며, 여기서 소정 정도의 병렬, 분포 또는 협동 처리가 유리하다. This feature of the present invention may have certain advantages and utilities when applied to grid computation, clustering, parallel processing, highly parallel processing, symmetric processing, and / or other processing scenarios, where some degree of parallelism, distribution, or cooperative processing may be employed. It is advantageous.

적어도 부분적으로, 다중 시스템 자원이 논리적으로 또는 물리적으로 다중화 된 또는 병렬 계산 구성에 결합 또는 사용될 수도 있기 때문에, 다중 프로세서 또는 CPU, 다중 메모리, 또는 심지어 다중 시스템 온 침(SOC)과 같이, 한정된 룰, 정책 또는 로직에 따라 소정의 최적 방식으로 하나 또는 세트의 처리 태스크를 실행하기 위해 필요한 현재 세트의 처리에 따라 자동으로(또는 수동으로) 그리고 동적으로 구성될 수 있는 다수 또는 다중 처리 자원 물리적 계산 시스템이 구축될 수도 있다. 최적화 파라미터는 예를 들어 최대 출력, 가장 신속한 실행, 최소의 전력 소모, 가장 큰 에러 감소, 최소 열 발생 또는 소정의 다른 데이터 또는 동작 우선권 또는 요구를 포함할 수도 있다. 이러한 특징을 포함하는 본 발명의 실시예는 하드웨어 비용을 최소화하기 위해 선택적으로 상대적으로 낮은 실행 프로세서 또는 CPU 또는 다른 시스템 구성을 이용할 수도 있지만, 이러한 자원을 동적으로 결합하는 능력으로 인해 성능에 영향을 주지 않는다. Limited rules, such as multiprocessor or CPU, multiple memory, or even multiple system temperature (SOC), at least in part, because multiple system resources may be combined or used in logically or physically multiplexed or parallel computational configurations. There are multiple or multiple processing resource physical computing systems that can be configured automatically (or manually) and dynamically according to the current set of processing required to execute one or a set of processing tasks in some optimal manner in accordance with policy or logic. It can also be built. Optimization parameters may include, for example, maximum output, fastest execution, minimum power consumption, greatest error reduction, minimum heat generation, or some other data or operation priority or requirement. Embodiments of the present invention that incorporate these features may optionally use relatively low execution processors or CPUs or other system configurations to minimize hardware costs, but do not affect performance due to the ability to dynamically combine these resources. Do not.

여기에 설명된 관점에서, 본 발명의 실시예는 (이미 설명된 다중화 방식 중 하나의 사용을 통해) 정적 방식 또는 동적 방식으로, 이용할 수 있는 소정의 자원을 포함(또는 제거)하기 위해 물리적 또는 가상의 계산 시스템 또는 환경을 교환적으로 구성할 수도 있다. 예를 들어, 프로세서, 메모리 엘리먼트, 하드디스크 드라이브 또는 다른 저장 장치 서브 시스템에 부가하여, 시스템의 실시예는 모뎀, 네트워크 인터페이스 카드(NIC) 또는 다른 네트워크 인터페이스, 스니퍼 또는 판독 전용 NIC, 비디오 디스플레이 또는 처리 카드 또는 논리 회로, 그래픽 카드 또는 처리 로직 회로, 범용 시리얼 버스(USB) 포트 및 인터페이스, 방화벽 또는 IEEE 1394 인터페이스 및 포트, 시리얼 포트, 병렬 포트, PC 카드 포트 및 인터페이스, PCI 인터페이스, 메모리 인터페이스, 마이크로폰 및 스피커 입력 및 출력 포트, 디지털 신호 프로세서 및 로직, 프린터 포트, CD 및 DVD 인터페이스, 오디오 및 비디오 프로세서 로직, 무선 인터페이스 및 소정의 다른 하드웨어, 하드웨어 실행 소프트웨어 또는 펌웨어를 포함할 수도 있으며, 외부 장치에 대해 인터페이싱하는 포트가 외부 장치 및 시스템을 이네이블 또는 디스에이블할 수도 있는 정도까지 포함할 수도 있다.In view of the description herein, embodiments of the invention are physical or virtual to include (or remove) certain resources available, either statically or dynamically (through the use of one of the multiplexing schemes already described). It is also possible to configure the computational system or environment of the system interchangeably. For example, in addition to a processor, memory element, hard disk drive, or other storage subsystem, embodiments of the system may include a modem, a network interface card (NIC) or other network interface, a sniffer or read-only NIC, video display or processing. Card or logic circuit, graphics card or processing logic circuit, universal serial bus (USB) port and interface, firewall or IEEE 1394 interface and port, serial port, parallel port, PC card port and interface, PCI interface, memory interface, microphone and It may include speaker input and output ports, digital signal processors and logic, printer ports, CD and DVD interfaces, audio and video processor logic, wireless interfaces, and some other hardware, hardware executable software or firmware, and for external devices. It may include to the extent that the ports that interface may enable or disable external devices and systems.

일 실시예에서, 실행된 프로세스 중 하나는 네트워크 인터페이스 카드(NIC) 타입 프로세스와 같은 네트워크 인터페이스이다. NIC는 외부 소스 또는 프로세스로부터 수신된 데이터를 저장하기 위해 버퍼 또는 다른 저장 수단을 갖는다. 일단 수신 및 저장되면, 다중화된 처리 시나리오는 버퍼를 판독하고 다른 보호된 처리 방식과 유사한 방식으로 수신된 데이터를 조절할 수도 있다. 다시 말해, 외부 자원이 내부 데이터 세트에 비해 (e메일, 스팸, 바이러스, 스파이보트 또는 스파이웨어 적재 웹 사이트 등과 같은) 오염에 관련하여 더 많이 관련성을 나타내는 반면, 본 발명의 시스템 및 발명에 의해 제공된 보호 수단은 다른 사용자 데이터 세트와 같은 동일한 높은 레벨의 보호를 제공한다. 이러한 동일한 이익은 외부 접속이 모뎀, 플로피 디스크, USB 메모리 장치, 입/출력 포트, 무선 접속, 또는 소정의 다른 인터페이스를 통한 것인지에 무관하게 제공된다. 입력 데이터가 다른 사용자 데이터 또는 저장된 신뢰 버젼의 애플리케이션 프로그램 및 동작 시스템을 오염시킬 수 없도록 입력 데이터를 분리시키기 위한 수단이 제공된다. In one embodiment, one of the executed processes is a network interface, such as a network interface card (NIC) type process. The NIC has a buffer or other storage means for storing data received from an external source or process. Once received and stored, the multiplexed processing scenario may read the buffer and adjust the received data in a manner similar to other protected processing schemes. In other words, while external resources are more relevant in terms of contamination (such as email, spam, viruses, spybots, or spyware loading websites, etc.) than internal data sets, the systems and inventions of the present invention provide The protection means provides the same high level of protection as other user data sets. This same benefit is provided regardless of whether the external connection is through a modem, floppy disk, USB memory device, input / output port, wireless connection, or some other interface. Means are provided for separating the input data such that the input data cannot contaminate other user data or stored trusted versions of application programs and operating systems.

본 발명의 스위칭 및 제어 특성의 사용은 소정의 내장된 연산 시스템, 애플 리케이션 프로그램 소프트웨어 코드, 또는 내장된 데이터를 포함하는 처리 또는 계산 시스템에 존재할 수도 있는 소정의 버퍼, 캐시, 데이터 저장 장치, 및/또는 메모리 시스템 및 서브 시스템에 적용가능하지만, 이에 한정되지 않는다. 하드디스크 저장 장치와 관련하여 설명된 바와 같이, 스위치 또는 스위칭 로직은 정적, 동적 또는 일시적 또는 다중화된 방식으로 컴퓨터 시스템으로부터 소정의 식별된 버퍼, 캐시, 데이터 저장 장치, 및/또는 메모리 시스템 또는 서브 시스템을 물리적으로 또는 논리적으로 부가 및/또는 제거하는데 사용될 수도 있다. 게다가, 본 발명의 스위칭 및 제어 특성은 비디오 또는 그래픽 제어기 또는 프로세서, 프린터, 사운드 카드, 또는 소정의 다른 시스템 또는 컴퓨터 자원와 같은 데이터 저장 기능과 통상적으로 관련되지 않은 시스템 자원에 적용가능하다. 메모리 어드레스 범위 맵핑, 파워 온/오프, BIOS 기반 구조 및 구조해체, 및 이러한 시스템 자원을 숨기거나 가시적으로 하는 다른 수단은 본 명세서 전체에서 설명되고 있으며, 여기에서는 구체적으로 반복하지 않는다. The use of the switching and control features of the present invention may include any buffer, cache, data storage device, and / or which may be present in any embedded computing system, application program software code, or processing or computing system including embedded data. Or applicable to memory systems and subsystems, but is not limited to such. As described in connection with hard disk storage, the switch or switching logic may be configured to identify certain buffers, caches, data storage devices, and / or memory systems or subsystems from a computer system in a static, dynamic, or temporary or multiplexed manner. May be used to physically or logically add and / or remove. In addition, the switching and control features of the present invention are applicable to system resources that are not typically associated with data storage functions such as video or graphics controllers or processors, printers, sound cards, or any other system or computer resource. Memory address range mapping, power on / off, BIOS infrastructure and decommissioning, and other means of hiding or making such system resources visible are described throughout this specification and are not specifically repeated herein.

연산 시스템, 애플리케이션 프로그램, 및/또는 내부에 저장된 다른 실행가능하거나 비실행가능한 코드 또는 데이터를 갖는 저장 장치 또는 메모리를 갖는 시스템에 대한 특정 참조에서, 이러한 내장된 엘리먼트는 처리 환경으로 스위칭(예를 들어, 부가)되거나, 처리 환경으로부터 스위칭(예를 들어, 삭제)될 수도 있어서 요구되거나 필요한 연산 시스템, 애플리케이션 프로그램, 또는 처리 작업을 실행하는데 필요한 다른 코드 및 데이터를 제공할 수 있다. 예를 들어, 마이크로 윈도우 XP(또는 소정의 다른 연산 시스템), 마이크로 아웃룩, 애도브 포토샵, 및/또는 내 장된 스크린 이미지 그래픽과 같은 데이터의 내장된 저장 버전은 상이한 물리적 또는 논리적으로 별개의 메모리 또는 저장 수단에 내장될 수도 있다. 이들은 예를 들어, 상이한 메모리 칩, 전술한 어드레스 맵핑 및 제어에 의해 또는 다른 수단을 통해 분리된 공통 물리적 장치의 논리적으로 분리된 부분일 수도 있다. 이어 이들은 필요성이 식별된 때 처리 환경으로 부가되고 필요성이 더이상 존재하지 않는 때, 처리 환경으로부터 제거되며, 그로 인해 다른 프로세스에 대한 자원을 자유롭게 한다. 시스템 내의 제어 환경 또는 다른 제어 엘리먼트는 특정 내장 (및 비내장) 코드 또는 데이터를 예상 또는 검색하고 내장된 엘리먼트를 본 발명의 전술한 스위칭 및 구성 특성을 이용하는 처리 환경에 구성한다. 검색은 요청 또는 프로그램 호와 같은 소정의 다른 검색 수단일 수도 있다. 제어 환경 또는 다른 제어 엘리먼트는 또한 내장된 엘리먼트에 대한 요구가 종료되고 상기 엘리먼트를 처리 환경의 구성으로부터 제거되고 이를 다른 처리 요구 요청에 대해 이용가능하게 될 때, 예상 또는 검색에 책임이 있다. In particular reference to a computing system, an application program, and / or a system having a storage device or memory having other executable or non-executable code or data stored therein, these embedded elements may be switched to a processing environment (e.g., Or may be switched (eg, deleted) from the processing environment to provide the required or required computing system, application program, or other code and data needed to execute the processing task. For example, built-in stored versions of data, such as micro Windows XP (or some other computing system), micro Outlook, Adobe Photoshop, and / or embedded screen image graphics, may have different physical or logically separate memories or storage. It may be embedded in the means. These may be, for example, logically separate portions of a common physical device separated by different memory chips, address mapping and control described above, or through other means. They are then added to the processing environment when the need is identified and removed from the processing environment when the need no longer exists, thereby freeing resources for other processes. A control environment or other control element in the system anticipates or retrieves specific embedded (and non-embedded) code or data and configures the embedded element in a processing environment utilizing the aforementioned switching and configuration features of the present invention. The search may be any other search means such as a request or program call. The control environment or other control element is also responsible for anticipation or retrieval when the request for an embedded element is terminated and the element is removed from the configuration of the processing environment and made available for other processing request requests.

(선택적으로 소정의 소프트웨어 및/또는 펌웨어를 포함하는) 제어 환경 및/또는 하드웨어 스위칭 환경은 액세스의 특성이 제어되거나 제한되도록 소정의 어드레싱 가능한 메모리, 내장형 저장 장치 등이 판독 전용, 기록 전용, 또는 판독-기록 메모리로서 액세스 가능하게 할 수도 있다. 이러한 액세스 타입 제어(판독 전용, 기록 전용, 판독-기록)는 통상적으로 수동으로 처리 작업에 의존하는데 유용할 수도 있다. 템플릿이 기록 동작에 의해 오염되거나 위태롭게 되지 않지만, 템플릿이 충분한 액세스 특권을 갖는 사용자 또는 프로세스에 의해 (새로운 버전으로) 업 데이트 되도록 하기 위해 표준 액세스를 위한 판독 전용 모드에서 템플릿을 홀딩하는 특정 메모리 또는 저장 장치를 유지하기 위한 절차를 제공한다. The control environment (and optionally including software and / or firmware) and / or hardware switching environment may be read-only, write-only, or read-only by some addressable memory, internal storage, or the like, such that the nature of the access is controlled or limited. It may be made accessible as a recording memory. Such access type control (read only, write only, read-write) may typically be useful to rely on processing tasks manually. Specific memory or storage that holds the template in read-only mode for standard access to ensure that the template is not contaminated or jeopardized by the write operation, but that the template is updated (to a new version) by a user or process with sufficient access privileges. Provide procedures for maintaining the device.

저장 장치의 물리적 또는 논리적 분리를 유지하기 위한 문맥에서, 다수의 플래터 또는 표면을 갖는 하드디스크 드라이브 또는 다른 회전 저장 매체는 각각의 플래터 표면에 대해 분리된 판독/기록 헤드를 동작시킴으로써 분리될 수도 있다. 통상적으로, 두 개의 플래터 및 네 개의 표면을 갖는 하드 디스크 드라이브는 단일 디스크 드라이브 제어기에 의해, 그리고 조화된 다수의 판독/기록 헤드를 움직이는 액추에이터에 의해 동작될 것이다. 본 발명의 실시예는 하나의 제어기가 자신의 단일(또는 세트의) 표면 및 판독/기록 헤드를 인식하지만, 동일한 하드 디스크 드라이브 내의 다른 표면 또는 헤드를 인식하지 않도록 독립된 방식으로 판독/기록 헤드에 대한 액세스를 최소한 제어하는 개별 제어기를 제공한다. 다른 실시예에서, 개별 액추에이터가 액추에이터 암 및 판독/기록 헤드가 각각의 표면 또는 표면의 세트에 대해 독립적으로 동작하도록 제공될 수도 있다. 본 발명의 다이나믹 구성 특성은 이용가능한 다소의 표면을 만들고, 이들을 판독 전용, 기록 전용 또는 판독-기록이 가능하게 하도록 하드디스크 드라이브에 적용될 수도 있다. In the context of maintaining physical or logical separation of storage devices, hard disk drives or other rotating storage media having multiple platters or surfaces may be separated by operating separate read / write heads for each platter surface. Typically, a hard disk drive with two platters and four surfaces will be operated by a single disk drive controller and by an actuator moving a plurality of coordinated read / write heads. Embodiments of the present invention are directed to read / write heads in an independent manner such that one controller recognizes its single (or set of) surfaces and read / write heads, but not other surfaces or heads within the same hard disk drive. Provide individual controllers that at least control access. In other embodiments, individual actuators may be provided such that the actuator arm and read / write head operate independently for each surface or set of surfaces. The dynamic configuration features of the present invention may be applied to hard disk drives to make some surfaces available and to make them read-only, write-only, or read-write.

본 발명의 일 실시예에서, 본 발명의 특성은 하드디스크 드라이브 내에 또는 부착된 또는 디스크 드라이브 제어기 내의 로직 보드에 제공된다. 논리적 또는 물리적으로 분리된 하드디스크 드라이브 플래터 표면은 분리된 저장 장치에 대해 사용될 수도 있다. 일 실시예에서, 이러한 엘리먼트 및 특성은 제어 특성을 갖는 하드 디스크 드라이브가 개별 컴퓨터 또는 외부 프로세서에 대한 필요성 없이 본 발 명의 보호 및 보안 특성을 갖는 네트워크 애플리케이션을 제공하도록 결합된다. 따라서, 본 발명은 또한 본 발명의 보호 및 보안 특성을 갖는 네트워크 또는 네트워크 장치를 제공한다. In one embodiment of the invention, features of the invention are provided on a logic board in or attached to a hard disk drive or in a disk drive controller. Logical or physically separate hard disk drive platter surfaces may be used for separate storage devices. In one embodiment, these elements and characteristics are combined such that a hard disk drive having control characteristics provides a network application having the protection and security characteristics of the present invention without the need for a separate computer or an external processor. Accordingly, the present invention also provides a network or network device having the protection and security features of the present invention.

본 발명의 실시예에 사용될 수 있는 다른 선택적 특성들Other Optional Features That Can Be Used in Embodiments of the Invention

컴퓨터 및 정보 응용 구조, 시스템 구조, 및 컴퓨터, 정보 응용 장치 및 다른 장치를 생성 및 동작시키는 방법 및 절차의 몇몇 상이한 실시예를 설명하였지만, 이제 소정의 실시예에 제공될 수도 있는 다른 특성(소정의 선택적 특성을 포함함)을 설명할 것이다. 이러한 설명은 또한 다양한 계산 환경에서 조절될 수도 있는 애플리케이션의 타입의 소정의 지표를 제공하며, 바이러스, 해커 코드, 트로이안 목마, 및 다른 악성 코드에 대한 어떠한 특정 민감도가 보안 또는 면역 이슈를 제공할 수도 있는지, 어떻게 이러한 이슈가 본 발명의 구조, 시스템, 방법 및 절차를 이용하여 해결되는지에 대한 소정의 지표가 제공된다. 이러한 설명의 문맥에서, CE라는 계산 환경은 소정의 다양한 계산 환경, 분리된 계산 환경, 또는 본 명세서에 설명된 바와 같은 계산 또는 분리된 서브시스템, 및 관련된 응용 및 참조로 포함되어 설명된 바와 같은 계산 환경 및 서브 시스템을 포함하도록 의도된다. Although several different embodiments of computer and information application structures, system structures, and methods and procedures for creating and operating computers, information application devices, and other devices have been described, other features that may now be provided in certain embodiments may be described. Including optional features). This description also provides some indication of the type of application that may be controlled in various computing environments, and what specific sensitivity to viruses, hacker code, Trojan horses, and other malicious code may provide security or immune issues. Some indications are provided as to how such issues are addressed using the structures, systems, methods and procedures of the present invention. In the context of this description, a computational environment called CE is defined as a variety of computational environments, separate computational environments, or computational or discrete subsystems as described herein, and as described with reference to related applications and references. It is intended to include environments and subsystems.

데이터는 직접 메모리 액세스를 이용하는 ASIC 또는 로직 제어 장치와 같은 개별 로직 제어 장치를 이용하여 특정 목적 서브 시스템들 또는 계산 환경들 사이에서 이동될 수도 있다. 데이터를 유리하게 이동시키는 프로세스는 데이터가 실행되게 하지는 않으며, 이는 해킹, 바이러스, 다른 악성 코드 등이 늦춰지게 할 수 있다. 게다가, 데이터는 부호화되고, 압축되거나 엔코딩되어 데이터의 실행을 방 지할 수도 있다. Data may be moved between specific destination subsystems or computing environments using individual logic control devices, such as ASICs or logic control devices using direct memory access. The process of moving data advantageously does not cause the data to run, which can slow hacking, viruses, and other malicious code. In addition, data may be encoded, compressed or encoded to prevent execution of the data.

계산 환경의 수리 및 회복은 필요한 경우 행해질 수도 있다. 계산 환경(CE)은 자동화된 수리 프로세스를 이용하여 아이들 상태로 수리 또는 복귀될 수도 있다. 이러한 수리는 "온 더 플라이"로 행해지거나, 각각의 거래 이후 또는 재부팅 없이 행해질 수도 있다. 마스터 템플릿은 통상적으로 특정 목적 서브 시스템의 아이들 상태를 나타내며, 저장 시스템에 저장될 수도 있다. 거래는 e 메일을 읽는 것을 포함할 수도 있으며, 각각의 개별 e 메일 메시지는 개별 거래를 나타낸다. 선택적으로, 하나 이상의 아이템은 수리 프로세스 동안 무시될 수 있다. 예를 들어, 만일 e 메일이 열려지면, 수리 프로세스는 열려진 e 메일을 무시하고, 문제를 검색 및 수리할 수도 있으며, 이어 사용자는 이를 중지하지 않고 e 메일에 응답할 수도 있다. 다른 실시예에서, 모든 다운로드 및 e 메일은 작업 서브 시스템에서 다운로드 또는 e 메일을 열기 전에 저장 시스템에 즉각적으로 저장될 수 있다. Repair and recovery of the computing environment may be done if necessary. The computing environment CE may be repaired or returned to the idle state using an automated repair process. This repair may be done “on the fly”, or after each transaction or without reboot. The master template typically represents the idle state of a particular destination subsystem and may be stored in a storage system. The transaction may include reading an e-mail, where each individual e-mail message represents an individual transaction. Optionally, one or more items can be ignored during the repair process. For example, if an e-mail is opened, the repair process may ignore the open e-mail, search for and repair the problem, and then the user may respond to the e-mail without stopping it. In other embodiments, all downloads and e-mails may be immediately stored in the storage system before opening a download or e-mail in the work subsystem.

일 실시예에서, CE의 로직은 수리 프로세스와 관련한 이벤트를 트리거할 수도 있다. 수리 프로세스는 작업 시스템의 마스터 템플릿과 현재의 작업 시스템의 상태 사이의 비교를 실행할 수도 있다. 이들 사이의 소정의 차이는 상이한 일부 또는 모든 데이터가 작업 시스템으로부터 검색되는 연속한 수리 프로세스를 트리거할 수 있다. 게다가, 데이터는 필요할 때 수리 프로세스에 의해 마스터 템플릿으로부터 복사될 수도 있다. 일 실시예에서, 수리 프로세스는 작업 시스템이 마스터 템플릿에 일치하게 할 수도 있다. In one embodiment, the logic of the CE may trigger an event related to the repair process. The repair process may perform a comparison between the master template of the working system and the state of the current working system. Any difference between them can trigger a continuous repair process in which some or all of the different data is retrieved from the working system. In addition, data may be copied from the master template by a repair process when needed. In one embodiment, the repair process may cause the work system to conform to the master template.

일 실시예에서, 수리 프로세스는 예를 들어, 하나 이상의 전자 상거래 이후 또는 하나 이상의 웹 페이지를 서핑한 후 실행될 수 있다. 따라서 모든 공지된 그리고 공지되지 않은 바이러스 및 트로이 목마는 다른 거래 이전에 무기력하게 될 수 있다. 이러한 프로세스는 컴퓨터로부터 바이러스, 웜 및 트로이 목마를 제거하지 않지만(이들은 저장 시스템에 저장될 수도 있음), 이들을 비활성 상태로 유지시킨다. 수리 프로세스는 휘발성 및 비휘발성 메모리를 수리하거나, 휘발성 메모리를 소거하거나, 휘발성 메모리를 아이들 상태로 설정할 수 있다. In one embodiment, the repair process may be executed, for example, after one or more e-commerce or after surfing one or more web pages. Thus all known and unknown viruses and Trojans can be rendered helpless before other transactions. This process does not remove viruses, worms, and Trojan horses from the computer (they may be stored in a storage system), but keeps them inactive. The repair process may repair volatile and nonvolatile memory, erase volatile memory, or set volatile memory to an idle state.

일 실시예에서, 만일 사용자가 열려질 하나 이상의 e 메일을 선택하면, 두 개 이상의 e 메일이 작업 시스템으로 복사되고 동시에 열려질 수 있다. 선택적으로, 각각의 e 메일은 자신 고유의 개별 분리된 작업 시스템으로 복사되고, 열려지고, 뷰잉되고 개별적으로 작업될 수 있다. 만일 사용자가 하나의 분리된 e 메일로부터 데이터를 다른 분리된 e 메일로 복사할 필요가 있을 경우, 코드가 실행되지 않게 하는 복사 프로세스가 사용될 수 있다. In one embodiment, if the user selects one or more e-mails to be opened, two or more e-mails can be copied to the work system and opened at the same time. Optionally, each e-mail can be copied, opened, viewed and worked individually on its own individual separate work system. If the user needs to copy data from one separate e-mail to another separate e-mail, a copy process can be used that prevents the code from running.

일 실시예에서, 웹 상거래 소프트웨어, 또는 e 메일 소프트웨어, 또는 소정의 소프트웨어는 변경되어, 거래를 위해 특정하게 필요한 개별 기록 또는 기록의 사본이 저장 시스템에 복사되고 사용되어 저장 시스템의 데이터 베이스로 재복사되게 하고, 각각의 이러한 거래 후 수리가 행해질 수 있게 한다. 선택적으로, 예를 들어, 데이터가 하나 이상의 데이터 베이스 또는 CGI와 작용하는 거래에서, 거래는 필요한 경우, 개별 세그먼트, 분리된 저장 시스템으로 그리고 그로부터 복사된 데이터 또는 작업 시스템으로 분할되며, 거래의 각각의 세그먼트 사이에서, 또는 거래의 소정 세그먼트 사이에서 실행될 수 있다. 선택적으로, 소프트웨어는 어떤 타 입의 데이터가 소정의 기준을 충족시키는 복사 전용 데이터에 대해 복사 프로세스를 제한하는 거래를 포함하는 지를 한정하는 명령을 포함할 수 있다. In one embodiment, the web commerce software, or e-mail software, or certain software is modified such that the individual records or copies of records specifically needed for a transaction are copied to a storage system and used to copy back to a database of the storage system. And repairs can be made after each such transaction. Optionally, for example, in a transaction where data interacts with one or more databases or CGIs, the transaction is split into individual segments, separate storage systems and data or work systems copied therefrom, if necessary, It may be performed between segments or between certain segments of a transaction. Optionally, the software may include instructions to define which type of data includes a transaction that limits the copying process to copy-only data that meets certain criteria.

일 실시예에서, 수리 프로세스를 가속시키기 위해, 작업 시스템의 마스트 템플릿 및 작업 시스템의 소프트웨어는 수리 프로세스의 속도를 증진시키기 위해 자신 고유의 개별 분리된 휘발성 메모리 영역 또는 셀에 각각 로딩될 수도 있다. 따라서, 만일 작업 시스템의 데이터가 휘발성 메모리에 있고 마스터 템플릿이 휘발성 메모리에 있다면, 수리는 더 높은 속도로 행해질 수 있다. 택일적으로, 새로운 작업 시스템이 사용될 수 있으며, 수리를 위한 필요성을 제거한다. 예를 들어, 사용자는 e 메일을 열 수 있으며, 하나의 셀을 이용하여 e 메일을 읽으며, 만일 e 메일에 응답하기를 원하면 제2의 셀이 응답을 위해 사용될 수 있다. 선택적으로 제1 셀 또는 계산 환경은 바이러스를 체크할 수 있지만, 사용자는 제2 셀을 이용하여 e 메일에 대한 응답을 기록하며, 추가의 셀 또는 계산 환경은 사용을 위해 준비될 수 있다. In one embodiment, to accelerate the repair process, the mast template of the work system and the software of the work system may each be loaded into their own individual separate volatile memory regions or cells to speed up the repair process. Thus, if data of the working system is in volatile memory and the master template is in volatile memory, the repair can be done at a higher speed. Alternatively, new work systems can be used, eliminating the need for repairs. For example, a user can open an e-mail, read an e-mail using one cell, and a second cell can be used for the response if he wants to respond to the e-mail. Optionally, the first cell or computing environment can check for viruses, but the user records the response to the e-mail using the second cell, and additional cells or computing environments can be prepared for use.

다른 실시예에서, 데이터는 데이터의 실행을 방지하는 코딩 또는 압축 또는 다른 복사 방법을 이용하여 저장 시스템에 직접 다운로드될 수 있다. 선택적으로, 분리된 숨겨진 백업 또는 보존 시스템은 본 발명과 함께 사용될 수도 있으며, 이는 숨겨진 백업 또는 보존 시스템 또는 작업 시스템을 필요에 따라 휘발성 또는 비휘발성 메모리/메모리들 또는 데이터로 만들 수도 있으며, 이는 타임 스탬핑된다. 이러한 백업 또는 보존 시스템으로 데이터를 복사하는 것은 백업 시스템상의 데이터에 파일의 실행 및 손상을 방지하기 위해 설명된 기술을 또한 사용할 수 있다. In other embodiments, the data may be downloaded directly to the storage system using coding or compression or other copying methods that prevent the execution of the data. Optionally, a separate hidden backup or retention system may be used with the present invention, which may make the hidden backup or retention system or working system into volatile or nonvolatile memory / memory or data as needed, which is time stamped. do. Copying data to such a backup or preservation system may also use the techniques described to prevent the execution and corruption of files on the data on the backup system.

파일 저장 동작과 관련하여, 일 실시예에서, 저장이 작업 시스템에서 행해질 때마다, 복사는 저장 시스템에 대해 행해질 수 있다. 선택적으로, 바이러스 또는 트로이 목마가 저장 시스템에 저장된 수백만의 저장을 실행함으로써 파괴를 방지하기 위해, 선택적으로 파일이 저장될 수 있는 빈도에 대한 제한을 부과할 수도 있으며, 또는 다른 제한이 작업 시스템에 대한 저장 데이터의 프로세스에 대해 행해질 수도 있다. 선택적으로, 이는 ROM 또는 복사, 보관, 저장 또는 다른 프로그램의 일부일 수 있다. Regarding the file save operation, in one embodiment, whenever a save is made at the working system, a copy may be made to the storage system. Optionally, a virus or Trojan can optionally impose a limit on how often a file can be stored, in order to prevent destruction by executing millions of stores stored on the storage system, or other restrictions on the working system. It may also be done for the process of stored data. Optionally, it may be part of a ROM or copy, archive, store or other program.

제한된 기능을 갖는 개별 프로세서는 분리된 작업 시스템에서 프로세스 데이터에 사용될 수도 있으며, 또는 메인 프로세서에 제한된 기능이 주어질 수 있다. 이는 다수의 데이터 저장 장치, 또는 분리된 부분을 갖는 하나의 데이터 저장 장치로 행해질 수 있다. Individual processors with limited functionality may be used for process data in separate work systems, or limited functionality may be given to the main processor. This can be done with multiple data storage devices, or one data storage device with separate parts.

본 발명의 시스템 및 방법의 일 실시예에서, 데이터는 악성 코드를 전달할 가능성을 제거하는 방식으로 하나 이상의 계산 환경 사이에서 전달되며, 또는 하나 이상의 제2 계산 환경 사이에서 전달된다. 일 실시예에서, 이러한 방법론적 절차는 예를 들어, 제2 계산 환경에 안내하는 데이터 라인에 접속된 ASCII 또는 확장형 ASCII를 송신 및/또는 수신할 능력을 갖는 ASIC 또는 다른 로직 회로 또는 로직 수단의 제1 계산 환경에서의 사용을 포함한다. 소정의 실시예에서, ASIC 또는 로직 수단의 성능은 어떠한 부가의 처리가 발생할 수 없도록 특정하게 제한된다. 선택적으로 제2 계산 환경은 ASCII 데이터를 직접 수신할 수도 있으며, 또는 그 대신 데이터는 ASCII 또는 확장 ASCII 데이터를 수신 및/또는 전송하는 능력을 갖는 제2 ASIC에 의해 수신될 수도 있다. 이러한 ASICS는 예를 들어, 버퍼 오버런을 방지하기 위해 (예를 들어, 시간 주기내에) 행해질 수도 있는 데이터의 양, ASCII 특성, 및/또는 요청을 제한할 수도 있다. In one embodiment of the systems and methods of the present invention, data is passed between one or more computing environments in a manner that eliminates the possibility of delivering malicious code, or between one or more second computing environments. In one embodiment, such a methodological procedure is for example provided by an ASIC or other logic circuit or logic means having the ability to transmit and / or receive ASCII or extended ASCII connected to a data line leading to a second computing environment. It includes use in 1 computing environment. In certain embodiments, the performance of the ASIC or logic means is specifically limited such that no further processing can occur. Optionally, the second computing environment may directly receive ASCII data, or instead the data may be received by a second ASIC having the ability to receive and / or transmit ASCII or extended ASCII data. Such ASICS may, for example, limit the amount of data, ASCII characteristics, and / or requests that may be made (eg, within a time period) to prevent buffer overruns.

일 실시예에서, ASCII 필터링된 또는 스트립된 파일 또는 콘텐츠에 대한 소정의 선택적 조절이 제공될 수도 있다. 예를 들어, 만일 파일, 데이터 세트, 또는 인터넷 또는 월드 와이드 웹 콘텐츠가 ASCII 스트립된 또는 필터링되지 않았다면, 외부 세계로부터의 파일 및 그로부터 전달된(자신의 자손 또는 자식으로부터 전달된) 파일은 "불안전"으로 마킹 또는 식별되는 반면, 단지 소정의 허가된 ASCII 특성을 포함하기 위해 필터링 또는 스트립된 파일 또는 콘텐츠가 "안전"으로 식별될 수도 있다. 이러한 타입의 마킹은 ASCII가 아닌 예정된 다른 파일 또는 콘텐츠에 대해 사용될 수 있다. 따라서, 통상적으로, 파일은 선택적으로 문제를 일으킬 수도 있는 감염, 악성, 또는 단순히 비공지된 코드에 노출되지 않은 것이 공지되면 안전한 것으로 처리되며; 이렇게 노출되지 않은 것으로 공지되면 안전한 것으로 마킹될 수도 있다. In one embodiment, some optional adjustments to ASCII filtered or stripped files or content may be provided. For example, if a file, data set, or Internet or World Wide Web content was not ASCII stripped or filtered, files from the outside world and files transferred from them (from their descendants or children) are "unsafe". While marked or identified as a file or content, the filtered or stripped file or content may be identified as "safe" only to include certain authorized ASCII characteristics. This type of marking may be used for other scheduled files or content other than ASCII. Thus, typically, a file is treated as safe if it is known that it is not exposed to an infection, malicious, or simply unknown code that may optionally cause a problem; If it is known that it is not exposed, it may be marked as safe.

일 실시예에서, 예를 들어 하나 이상의 다음 단계로 구성되거나 이를 포함하는 수리 프로세스가 행해질 수도 있다: (a) 마스터 템플릿의 모두 또는 일부와 일치 및/또는 부분적으로 일치하는 CE에 소프트웨어를 생성 (b) 계산 환경 또는 계산 환경 저장 장치("폭발 룸")와 같은 계산 환경의 일부를 소거 및/또는 수리, 및/또는 2차 CE로 스위칭 (c) 하나 이상의 데이터 저장 장치, 마스터 부트 레코드, 파티션 테이블 등을 재포맷 및/또는 수리 (d) 하나 및/또는 그 이상의 다른 수리 프로 세스를 실행 또는 (e) 이들의 소정 조합을 실행. 수리 프로세스는 예를 들어, 사용자가 문서를 "종료"할 때마다 실행될 수도 있다(및/또는 다른 기준이 문서가 실행될 때를 위해 사용될 수도 있다). 따라서, 각각의 새로운 문서가 소거 환경에서 열려질 수도 있으며, 이는 어떠한 바이러스 및/또는 해커 소프트웨어 또는 다른 악성 코드를 포함하지 않는다. In one embodiment, for example, a repair process may consist of or include one or more of the following steps: (a) generate software in a CE that matches and / or partially matches all or part of the master template (b A) erase and / or repair a portion of a computing environment, such as a computing environment or computing environment storage device ("explosion room"), and / or switch to a secondary CE; (c) one or more data storage devices, master boot records, partition tables. (D) execute one and / or other repair processes or (e) perform any combination thereof. The repair process may be executed each time a user "ends" a document (and / or other criteria may be used for when the document is executed). Thus, each new document may be opened in an erased environment, which does not contain any virus and / or hacker software or other malicious code.

일 실시예에서, 마스터 템플릿은 선택적으로 숨겨질 수도 있는 데이터 저장 장치상에 저장될 수도 있으며, 및/또는 사용자에게 통상적으로 보여지지 않을 수도 있으며, 보호된 마스터 템플릿, 및/또는 마스터 템플릿으로 언급될 수도 있다. 선택적으로, 마스터 템플릿은 필요시까지 "판독 전용", 및/또는 로킹, 및/또는 턴오프, 및/또는 디스에이블되며, 및/또는 디스커넥트되며, 및/또는 비활성되며, 및/또는 마스터 템플릿과의 통신은 종료 및/또는 비활성될 수 있다. 이러한(및 다른) 기술은 보호된 마스터 템플릿을 악성 코드로부터 보호하기 위해 사용될 수 있다. In one embodiment, the master template may be stored on a data storage device that may optionally be hidden, and / or may not normally be visible to the user, and may be referred to as a protected master template, and / or master template. It may be. Optionally, the master template is “read only”, and / or locked, and / or turned off, and / or disabled, and / or disconnected, and / or inactive, and / or master template until needed. Communication with may be terminated and / or deactivated. These (and other) techniques can be used to protect the protected master template from malicious code.

일 실시예에서, 데이터 저장 장치 및/또는 부분은 사용자의 개인적 데이터(사용자에 의해 행해진 문서, e 메일, 어드레스 북, 북 마커, 즐겨찾기, 데이터 베이스 컴포넌트 등)를 일시적으로 저장하는데 사용될 수도 있다. 이러한 데이터 저장 영역은 일시적 저장 장치로서 언급될 수도 있다. 예를 들어, 사용자가 문서를 저장할 때, 일시적 저장 장치에 저장될 수도 있다. 사용자가 데이터 베이스를 저장할 때, 예를 들어, 데이터 베이스(및 아마도 관련된 문서)는 일시 저장 장치에 저장될 수도 있다. 사용자가 e 메일을 다운로드할 때, 이는 일시 저장 장치에 저장될 수도 있다. 북마크 및 즐겨찾기와 같이 아이템이 생성될 때, 아이템들은 이 들이 생성되고, 및/또는 애플리케이션이 중지할 때 일시 저장 장치로 저장될 수도 있다. 문서가 보호된 저장 장치(명세서의 다른 부분에서 설명됨)로부터 요청된 때, 이는 일단 일시 저장 장치에 복사될 수도 있다. 예를 들어, 만일 사용자가 인터넷 브라우저를 열기를 원하면, 즐겨찾기/북마크, 및 다른 사용자 정보가 보호된 저장 장치로부터 일시 저장 장치로 복사될 수도 있다. 이는 이러한 프로세스에 필수적이지 않은 선택적 단계이지만 소정의 실시예에서는 필요하다는 것을 이해해야 한다. In one embodiment, the data storage device and / or portion may be used to temporarily store a user's personal data (documents, e-mails, address books, book markers, favorites, database components, etc. made by the user). This data storage area may be referred to as a temporary storage device. For example, when a user saves a document, it may be stored in a temporary storage device. When a user stores a database, for example, the database (and possibly related documents) may be stored in temporary storage. When a user downloads an e-mail, it may be stored in a temporary storage device. When items are created, such as bookmarks and favorites, they may be created and / or saved to a temporary storage device when the application is stopped. When a document is requested from a protected storage device (described elsewhere in the specification), it may once be copied to a temporary storage device. For example, if a user wants to open an internet browser, favorites / bookmarks, and other user information may be copied from the protected storage device to the temporary storage device. It is to be understood that this is an optional step that is not essential to this process but is necessary in certain embodiments.

수리 프로세스는 일시 저장 장치를 수리하고, 또는 이를 앞서 준비된 새로운 사본으로 대체한다. 예를 들어, 일 실시예에서, 다수의 일시적 저장 영역은 분리되어 준비될 수도 있다. 이어, 이들이 필요한 만큼, 오래된 일시 저장 장치 장치는 삭제되고 하나 이상의 새로운 장치로 교체되며, 이는 예를 들어 RAM, RAM 디스크, 셀 등을 사용하여 생성될 수도 있다. The repair process repairs the temporary storage device, or replaces it with a fresh copy prepared earlier. For example, in one embodiment, multiple temporary storage areas may be prepared separately. Then, as they are needed, the old temporary storage device is deleted and replaced with one or more new devices, which may be created using, for example, RAM, RAM disks, cells, and the like.

일 실시예에서, 예를 들어, 보호된 저장 장치는 사용자의 개인 데이터가 수리 이후를 제외하거나, 폭발 프로세스가 중지된 경우, 폭발 룸으로부터 분리된 저장 영역일 수도 있다. 일시적 저장 장치는 데이터가 보호된 저장 장치로부터 일시적 저장 장치로, 그리고 문서가 작업된 후 다시 일시적 저장 장치로부터 보호된 저장 장치로 "왕복된" 경우, (선택적으로) 사용될 수도 있는 데이터 저장 영역일 수도 있다. 일시적 저장 장치는 일 실시예에서 계산 환경(본 애플리케이션 및 소정의 앞선 애플리케이션에서 폭발 룸으로 언급됨)에 대해 언제나 액세스 가능할 수도 있다. 이러한 예에서, 사용자는 데이터를 작업 동안 일시적 저장 장치로 보관할 수도 있지만, 중지시, 문서(또는 다른 파일 또는 데이터 세트)는 일시적 저장 장치로부터 보호된 저장 장치로 복사된다. In one embodiment, for example, the protected storage device may be a storage area separate from the explosion room when the user's personal data is after repair or when the explosion process is stopped. Temporary storage may be (optionally) a data storage area that may be used (optionally) when data is "returned" from protected storage to temporary storage, and after a document has been worked on, from the temporary storage back to protected storage. have. The temporary storage device may in one embodiment always be accessible to the computing environment (referred to as the explosion room in this application and certain earlier applications). In this example, the user may keep the data on temporary storage during work, but upon interruption, the document (or other file or data set) is copied from the temporary storage to the protected storage device.

파일 및 백업과 관련하여, 선택적으로 일 실시예에서, 백업 시스템 또는 보존은 예를 들어, 문서, E 메일, 즐겨찾기 등의 사용자의 모든 개인적 데이트의 연속적 백업을 유지하는데 사용될 수도 있다. 선택적으로, 만일 파일이 바이러스 또는 손상에 의해 훼손되면, 사용자는 백업 시스템으로부터 최근 버젼을 복사할 수 있다. 연속한 백업 및/또는 보존은 시간/데이터 스탬핑되어, 사용자가 용이하게 백업이 언제 행해졌는지를 결정할 수 있다. 백업의 빈도는 제조자에 의해 디폴트로서 예정될 수도 있지만 사용자에 의해 변경가능할 수도 있다. 선택적으로, 백업 시스템은 사용자로부터 일반적으로 숨겨질 수도 있다. 일 실시예에서, 백업 시스템이 사용자에게 이용가능하면, "판독 전용" 모드로 유지되어, 사용자에 의해 유연히 변경될 수 없도록 한다. 선택적으로 백업은 개별 데이터 저장 장치(소정의 실시예에서는 파티션)에 존재하며, 및/또는 다른 경우, 예를 들어, 네트워크 상에 위치된다. 이는 본 프로세스에 필수적이지 않은 선택적 단계이지만 일부 실시예에서는 필요할 수도 있다. Regarding files and backups, optionally in one embodiment, a backup system or archive may be used to maintain a continuous backup of all of the user's personal data, such as, for example, documents, email, favorites, and the like. Optionally, if the file is corrupted by a virus or corruption, the user can copy the latest version from the backup system. Consecutive backups and / or retentions can be time / data stamped so that a user can easily determine when the backup was taken. The frequency of backups may be scheduled by default by the manufacturer but may be changeable by the user. Optionally, the backup system may be generally hidden from the user. In one embodiment, if a backup system is available to the user, it remains in "read only" mode, so that it cannot be flexibly changed by the user. Optionally the backup resides in a separate data storage device (partition in some embodiments) and / or in other cases, for example, located on a network. This is an optional step that is not essential to this process but may be necessary in some embodiments.

문제 또는 에러가 계산 환경에서 발생되었다는 지표와 관련하여, 복귀 및 수리의 다양한 단계가 행해질 수도 있다. 일 실시예에서, 프로세서는 처리를 완료하기 위해 허락될 수도 있으며, 및/또는 "소거"되거나 리셋될 수도 있으며, RAM이 소거되거나 리셋될 수도 있으며, (선택적으로, 선택적으로 이용불가능 및/또는 비활성화될 수도 있는 제2의 분리된 RAM은 이용가능하게 될 수도 있는데, 예를 들어 RAM과의 통신이 구축, 및/또는 성취 및 이용될 수도 있는 반면, 제1 RAM은 소거되지만, 제2 RAM의 사용은 요구되지 않음) 프로세스 및/또는 RAM은 수리 프로세스에서 사용될 수도 있다. 많은 택일적 프로세스 및/또는 상이한 프로세스 및/또는 RAM 또는 다른 메모리 또는 저장 장치가 이용될 수도 있지만, 폭발 룸 또는 분리된 처리 환경에 대한 수리 프로세스의 일 실시예가 설명된다. 일 실시예에서, CE의 수리는 CE를 다른 CE로 대체함으로써 또한 한정될 수도 있다. 이를 보존하는 한 방법은 제1 CE를 삭제하는 것이며, 제2 CE와의 통신을 보존하는 것이다. 택일적으로, 제1 폭발 룸은 제2 CE가 사용중인 동안 수리될 수 있다. With respect to the indicator that a problem or error has occurred in the computational environment, various steps of return and repair may be made. In one embodiment, the processor may be allowed to complete processing and / or may be "erased" or reset, the RAM may be erased or reset, and (optionally, optionally unavailable and / or inactive) A second separate RAM that may be made may become available, for example, while communication with the RAM may be established, and / or achieved and utilized, while the first RAM is erased, but the use of the second RAM. Is not required) and / or RAM may be used in the repair process. Although many alternative processes and / or different processes and / or RAMs or other memory or storage devices may be used, one embodiment of a repair process for an explosion room or separate processing environment is described. In one embodiment, repair of a CE may also be limited by replacing the CE with another CE. One way to preserve this is to delete the first CE and to preserve communication with the second CE. Alternatively, the first explosion room can be repaired while the second CE is in use.

인박스 및 아웃박스의 전자 메일 또는 E 메일은 통상적으로 많은 개별 메시지를 포함하는 큰 파일로 통상적으로 저장된다. 예를 들어, 하나의 "인박스"는 사용자에게 전송된 모든 메시지를 포함할 수도 있다. 따라서, 하나의 E 메일이 읽혀지거나 전송된 경우, 전체 E메일 파일은 바이러스 또는 해커로부터 위험해질 수도 있다. 본 발명의 일 실시예에 따라, E 메일 소프트웨어는 변경될 수도 있어서, 한 번에 하나의 E 메일이 임시 저장 장치 또는 사용을 위해 열려질 분리된 계산 환경에 복사될 수도 있다. 이는 다른 E 메일을 오염으로부터 보호할 것이다. 수리는 다른 E 메일을 열기 전에 실행될 수도 있다. 일 실시예에서, 어드레스 북 및/또는 다른 E 메일 컴포넌트는 보호된 저장 장치 및 특정 어드레스에 저장될 수도 있으며, 사용자 선택은 보호된 저장 장치로부터 사용할 작업 영역으로 복사될 수도 있다. 따라서, 바이러스는 사용자 전체 어드레스 북에 액세스하지 않을 것이다. 선택적으로, 어드레스 북을 업데이트하는 것은 제한되어서, 수리 프로세스가 우선 행 해지게 하며, 결국 어드레스 북을 오염으로부터 보호한다. In-box and out-box e-mails or E-mails are typically stored in large files that contain many individual messages. For example, one "in box" may include all messages sent to the user. Thus, if one E-mail is read or sent, the entire E-mail file may be at risk from viruses or hackers. According to one embodiment of the present invention, the E-mail software may be modified so that one E-mail at a time may be copied to a temporary storage device or to a separate computing environment to be opened for use. This will protect other E-mails from contamination. Repair may be performed before opening another E-mail. In one embodiment, address books and / or other E-mail components may be stored in protected storage and specific addresses, and user selections may be copied from the protected storage to the work area for use. Thus, the virus will not have access to the user's global address book. Optionally, updating the address book is limited, causing the repair process to take place first, thus protecting the address book from contamination.

선택적으로, 데이터 베이스 및 다른 소프트웨어는 대부분의 E 메일 프로그램이 개별 E 메일을 하나의 파일로 처리하는 것처럼 다수의 파일을 하나의 큰 파일 또는 데이터 베이스로 저장할 수도 있다. 이러한 소프트웨어는 변경되어서 개별 파일 및/또는 이산 기록들이 일시 저장 장치로 복사될 수 있게 하며, 사용자에 의해 한 번에 하나씩 작업되게 하여, 그 결과 전체 데이터 베이스가 위험에 처하지 않게 한다. 이어 수리는 다음 파일 또는 기록을 열기 전에 행해질 수도 있다. 예를 들어, 박스 내의 E 메일에서 각각의 E 메일은 개별 파일로 저장될 수 있다. 택일적으로, 데이터의 위치는 디렉토리 및/또는 데이터 베이스에 진입될 수 있으며, 해당 데이터만이 보호된 저장 장치의 소정의 파일을 열지 않고 임시 보관소에 복사될 수 있다. 일 실시예에서, 컴퓨터 프로그램 코드는 사용자 데이터가 보호된 저장 장치에서 열려지는 것을 방지할 수도 있다. 일 실시예에서 E 메일 및/또는 데이터 베이스는 보호된 저장 장치 영역으로부터 CE 및/또는 다른 저장 장치 장치로 복사될 수도 있으며, 하나(소정의 경우 그 이상)의 E 메일 또는 파일은 작업을 위해 열려질 수 있다. 단지 하나의 E 메일(또는 데이터 베이스 파일)이 열려지고 작업될 수 있으며, 나머지 E 메일 및/또는 데이터 베이스는 (여전히 보호된 저장 수단에 상주하기 때문에) 삭제될 수 있다. 일 실시예에서, 사용자 및 웹 사이트는 본 발명의 기술 및 방법을 이용한다. 예를 들어, 일 실시예에서, 시스템 또는 장치 사용자는 웹 사이트에서 전자 상거래를 실시할 것을 결정한다. 통상의 방식으로 웹사이트 상에서 데이터를 입력하는 대신, 사용자는 자신이 전자 상거래를 하기 를 원한다는 것은 표시하며, 이는 웹 사이트 소프트웨어가 사용자 공용 코딩 키를 픽업하게 한다(또는 사용자 소프트웨어가 자동으로 제공하게 함). 웹 사이트는 사용자 키를 분리된 계산 환경으로 이동시키며, 사용자는 자신의 거래 또는 데이터 베이스 정보로 진입하기 위해 사용할 수 있는 표준 단독 애플리케이션 프로그램 또는 절차를 사용하여 코딩한다. 이어 코딩된 파일은 접속되거나, 인터넷과 같은 네트워크에 접속 또는 결합될 수도 있는 분리된 컴퓨터 환경으로 이동될 수도 있으며, 또는 네트워크는 분리된 계산 환경으로 접속될 수 있는데, 여기서 표준 단독 애플리케이션은 코딩된다. 코딩된 애플리케이션은 이어 사용자에게 전송된다. 사용자의 컴퓨터는 애플리케이션을 수신하고, 이를 분리된 컴퓨터 환경으로 이동시키며, 애플리케이션을 분리된 계산 환경에서 디코딩한다. 이어 사용자는 자신의 사용자 데이터를 애플리케이션에 입력한다. 애플리케이션은 사용자가 입력한 것의 데이터 베이스를 생성할 수도 있으며, 이어 상기 데이터 베이스는 코딩되며, 이어 네트워크 접속이 분리된 계산 환경, 또는 새로운 분리된 계산 환경으로 이동된 코딩된 데이터 베이스로 구축되며, 이어 코딩된 데이터는 상거래 사이트로 역전송되어 새로운 분리된 계산 환경으로 이동되어 디코딩된다. 이러한 방식으로 디코딩된 데이터 베이스 및 전자 상거래는 네트워크에 결코 노출되지 않는다. Optionally, databases and other software may store multiple files in one large file or database, just as most E-mail programs treat individual E-mails as one file. Such software can be modified to allow individual files and / or discrete records to be copied to temporary storage and to be worked on by the user one at a time, resulting in the entire database not at risk. Repairs may then be made before opening the next file or record. For example, in an E-mail in a box, each E-mail can be stored in a separate file. Alternatively, the location of the data may enter a directory and / or database, and only that data may be copied to a temporary repository without opening any file on the protected storage device. In one embodiment, computer program code may prevent user data from being opened on a protected storage device. In one embodiment, the e-mail and / or database may be copied from the protected storage area to the CE and / or other storage device, with one (or more in some cases) e-mail or file open for work. Can lose. Only one E-mail (or database file) can be opened and worked on, and the rest of the E-mail and / or database can be deleted (since it still resides in a protected storage means). In one embodiment, users and web sites utilize the techniques and methods of the present invention. For example, in one embodiment, a system or device user decides to conduct an e-commerce on a web site. Instead of entering data on the website in the usual way, the user indicates that he wants to do e-commerce, which causes the website software to pick up the user's public coding key (or let the user software automatically provide it). ). The website moves the user's key to a separate computing environment, which the user codes using standard standalone application programs or procedures that can be used to enter their transactions or database information. The coded file may then be moved to a separate computer environment, which may be connected, connected or coupled to a network, such as the Internet, or the network may be connected to a separate computing environment, where standard standalone applications are coded. The coded application is then sent to the user. The user's computer receives the application, moves it to a separate computer environment, and decodes the application in a separate computing environment. The user then enters his user data into the application. The application may create a database of user input, which is then coded, and then built into a coded database where the network connection is moved to a separate computing environment or a new separate computing environment. The coded data is sent back to the commerce site, moved to a new separate computing environment, and decoded. Databases and e-commerce decoded in this manner are never exposed to the network.

일 실시예에서, 이더넷 케이블(또는 다른 네트워크 접속 통신 링크)는 양 방향이 아닌 단방향으로 통신할 수도 있으며, 수신 및 송신 케이블 각각은 계산 환경 각각과 통신하도록 스위칭된다. 이러한 실시예에서, 이더넷의 각각의 라인 또는 방향(또는 다른 네트워크 접속 통신 링크)이 개별적으로 분리된 계산 환경과 결합 된 각각의 통신 링크와 개별적으로 스위칭된다. 하나의 계산 환경이 전송하고 다른 계산 환경이 수신하며, 이들의 활동이 CSCE 또는 CCE와 같은 제어 계산 환경에 의해 제어된다. 다른 실시예에서, 한 쌍 또는 네트워크 인터페이스 카드 또는 능력(NIC) 또는 모뎀은 전송/수신 능력을 제공하는 쌍으로 송신 전용 또는 수신 전용으로 구성된다. 하나의 계산 환경에서 수신 전용 능력만을 제공하고 다른 계산 환경에서 송신 전용 능력만을 제공함으로써, 심지어 해커 또는 바이러스가 수신 계산 환경에 액세스한 경우도, 해커 또는 바이러스는 전송 전용 계산 환경으로부터 획득하거나 다른 곳에 통신할 수 없다. In one embodiment, the Ethernet cable (or other network connection communication link) may communicate in one direction rather than in both directions, with each of the receive and transmit cables switched to communicate with each of the computing environment. In this embodiment, each line or direction (or other network connection communication link) of Ethernet is individually switched with each communication link combined with a separate computing environment. One computing environment transmits and the other computing environment receives, and their activities are controlled by a control computing environment such as CSCE or CCE. In another embodiment, a pair or network interface card or capability (NIC) or modem is configured for transmit only or receive only in a pair providing transmit / receive capabilities. By providing only receive-only capabilities in one computing environment and only send-only capabilities in another computing environment, even if a hacker or virus has access to a receiving computing environment, the hacker or virus can obtain from or communicate with the computing environment for transmission only. Can not.

일 실시예에서, 내부 DHCP 라우터 또는 다른 라우터가 선택적으로 제공되어, 계산 환경이 다중 네트워크 거래, 다중 NIC 카드, 또는 다중 I/O 장치를 가질 수 있다. 일 실시예에서, 소정 수의 주변 장치가 분리된 방식으로 소정 수의 계산 환경과 배타적으로 결합된다. 이러한 장치들은 예를 들어, USB 장치, 방화벽 장치, SCSI 장치, 직렬 장치, 또는 기술 분야에서 알려진 바와 같은 소정의 다른 장치 타입일 수도 있다. In one embodiment, an internal DHCP router or other router may optionally be provided such that the computing environment may have multiple network transactions, multiple NIC cards, or multiple I / O devices. In one embodiment, the predetermined number of peripherals are exclusively combined with the predetermined number of computing environments in a separate manner. Such devices may be, for example, USB devices, firewall devices, SCSI devices, serial devices, or any other device type as known in the art.

일 실시예에서, 앞서 저장된 버젼의 파일을 대체하는 대신, 더 오래된 파일이 유지된다. 예를 들어, 업데이트된 넷스케이프 북마크 및 사용자 데이터가 보호된 저장 장치로 복사된 경우, 이들은 넷스케이프 북 마크 및 히스토리의 앞선 버젼을 대체하지 않을 수도 있다. 따라서, 데이터가 사용된 이후, 만일 데이터가 훼손되고 적절하게 동작하지 않으면, 제어 방법 및/또는 사용자는 수리를 실행할 수도 있으며, 데이터의 이전 버젼을 이용하여 스위칭백할 수도 있다. In one embodiment, instead of replacing the previously saved version of the file, the older file is kept. For example, if updated Netscape bookmarks and user data have been copied to a protected storage device, they may not replace earlier versions of Netscape Bookmarks and History. Thus, after the data is used, if the data is corrupted and does not operate properly, the control method and / or the user may perform repairs and switch back using the previous version of the data.

일 실시예에서, 선택적으로 두 개 이상의 CE가 생성될 수 있는데, 이들은 예를 들어, 완전한 마스터 템플릿을 갖는 하나 및 예를 들어 종종 사용된 애플리케이션 및 동작 시스템의 축약된 세트만을 포함하는 다른 하나이다. 선택적으로, 소프트웨어가 요구된 때, 만일 CE가 소프트웨어를 포함하지 않으면, 요구된 소프트웨어는, 사용자 소프트웨어의 전체 세트를 포함하고 선택적으로 동작 시스템을 포함할 수도 있는 마스터 템플릿으로부터 이를 복사함으로써 CE에 포함될 수 있다. In one embodiment, optionally two or more CEs can be generated, for example one with a complete master template and the other including only an abbreviated set of applications and operating systems that are often used, for example. Optionally, when software is required, if the CE does not include the software, the required software can be included in the CE by copying it from a master template that contains the entire set of user software and optionally may include an operating system. have.

일 실시예에서, 선택적으로 네트워크 통신을 활성화하기 이전에, 전송될 일부 또는 모든 E 메일은 전송에 앞서 분리된 계산 환경에서 코딩를 실행함으로써 E 메일을 보호하는 방법을 사용하여 코딩될 수 있으며, 이어 E 메일을 제2의 분리된 계산 환경으로 복사하며, 여기서 메일이 전송된다(그리고 잠재 해커에 노출된다). 수신 후, 코딩된 E 메일은 디코딩되기 전에 분리된 계산 환경으로 이동된다. 따라서, 이메일은 코딩되지 않은 형태로 인터넷에 결코 노출되지 않는다. 우리의 소프트웨어는 자동으로 코딩 및/또는 디코딩 프로세스를 사용자의 개입없이 트리거링한다. 선택적으로, 사용자 공용 키가 각각의 이메일에 자동으로 제공될 수 있다. In one embodiment, prior to selectively enabling network communication, some or all E-mail to be sent may be coded using a method of protecting E-mail by executing coding in a separate computing environment prior to transmission. Copies the mail to a second, separate computing environment where it is sent (and exposed to potential hackers). After receipt, the coded E-mail is moved to a separate computing environment before being decoded. Thus, email is never exposed to the Internet in uncoded form. Our software automatically triggers the coding and / or decoding process without user intervention. Optionally, a user public key can be automatically provided to each email.

선택적으로, 일 실시예에서, 보호된 저장 장치는, CSCE 또는 CCE 또는 다른 제어 환경이 데이터를 CE로 이동시키는 명령을 수신할 때까지 판독 전용 및/또는 로킹될 수 있다. 따라서, 이러한 예에서, 만일 사용자가 열기 위해 보호된 저장 장치의 문서를 선택하면, (예를 들어, ROM 및/또는 동작 시스템의 명령일 수도 있는) 코드는 CSCE가 수리를 실행하도록 명령할 수 있다. 이어 수리 이후에, CSCE는 보호된 저장 장치를 판독-기록 및/또는 언로킹으로 스위칭할 수 있다. 데이터는 보호된 저장 장치로부터 임시 저장 장치 및/또는 폭발 룸으로 복사될 수 있다. 이러한 이벤트는 다른 순서로 발생될 수도 있으며, 추가의 및/또는 다른 단계를 포함할 수도 있으며, 및/또는 이러한 단계의 일부를 포함할 수도 있다. Optionally, in one embodiment, the protected storage device may be read only and / or locked until the CSCE or CCE or other control environment receives a command to move data to the CE. Thus, in this example, if the user selects the document of the protected storage device to open, the code (which may be a command of the ROM and / or operating system, for example) may instruct the CSCE to perform the repair. . After repairing, the CSCE may then switch the protected storage device to read-write and / or unlock. Data can be copied from protected storage to temporary storage and / or explosion rooms. Such events may occur in a different order, may include additional and / or other steps, and / or may include some of these steps.

선택적으로, 다수의 CE는 동시에 동작할 수 있어, 어떤 CE가 "충돌"하고 그리고/또는 고장 및/또는 차단되고/또는 더 이상 불필요한 경우, 다른 CE가 사용중이던 CE를 대신할 준비를 한다. 예를 들어, CSCE는 제 2 CE로 전환될 수 있고, 그리고/또는 제 2 CE와의 통신을 활성화할 수 있다.Optionally, multiple CEs can operate at the same time, so that if one CE “collides” and / or fails and / or shuts off and / or is no longer needed, it is ready to take over for the other CE that was in use. For example, the CSCE may be switched to the second CE and / or activate communication with the second CE.

일 실시예에서, 보호 저장 장치에 관련된 코드는 데이터의 실행을 허용하지 않을 수도 있고 그리고/또는 보호 저장 장치에서 데이터의 실행을 지원하지 않을 수도 있다. 따라서 이 실시예에서는, 어떤 사용자 데이터도 보호 저장 장치에서 실행될 수 없다. 선택적으로, 수리 전에, 그리고 CE와의 새로운 네트워크 접속 전에, 그리고/또는 임의의 사용자 문서를 열기 전에는 CE에 의해 보호 저장 장치와의 통신이 결코 이루어질 수 없다. 따라서 보호 저장 장치는 해킹 및 바이러스의 실행에 손상되지 않는다.In one embodiment, code associated with protected storage may not allow execution of data and / or may not support execution of data in protected storage. Thus, in this embodiment, no user data can be executed in the protected storage device. Optionally, communication with the protected storage device can never be made by the CE before repair, before a new network connection with the CE, and / or before opening any user documents. Thus, the protected storage device is not compromised in the execution of hacking and viruses.

일 실시예에서, (x-룸 또는 폭발실이라고도 하는) 계산 환경들은 각각 서로 동일할 수도 있고, 그리고/또는 서로 차이점을 가질 수도 있으며, 그리고/또는 "시간 지연" 미러 역할을 한다. 일 실시예에서, 제 2 CE는 동일할 수도 있지만, 키 누름 및/또는 입력은 지연 방식으로 다수의 CE에 전송될 수도 있다. 따라서 어떤 CE들은 시간 지연될 수 있으므로, CE가 충돌한다면 제어 시스템이 시간 지연된 CE로 전환할 수 있다. 일 실시예에서, 제어 방법은 프로세스 감시자 및/또는 충돌 검출 시스템을 이용하여 제 2 시스템 CE로의 전환 여부를 판단할 수 있고, 선택적으로 문제점을 분석하여 연속적인 이전 CE로의 전환시 문제점을 피할 수 있다.In one embodiment, the computing environments (also known as x-rooms or explosive chambers) may each be identical to each other, and / or may differ from each other, and / or serve as a "time delay" mirror. In one embodiment, the second CE may be the same, but key presses and / or inputs may be sent to multiple CEs in a delayed manner. Therefore, some CEs can be time-delayed, so if a CE crashes, the control system can switch to a time-delayed CE. In one embodiment, the control method may use a process monitor and / or a collision detection system to determine whether to switch to the second system CE, and optionally analyze the problem to avoid problems in successive transitions to the previous CE. .

일 실시예에서, 휘발성 메모리의 데이터는 명령의 실행 전에 복사될 수도 있고, 그리고/또는 저장될 수도 있고, 그리고/또는 다른 메모리 영역 및/또는 논리 장치에 백업될 수도 있다. 명령의 실행 이전 데이터의 연속적인 백업이 저장될 수 있다. 그리고 명령이 실행될 때 정지와 같은 문제가 발생하면, 새로운 제 2 메모리 시스템 및/또는 제 2 자체 수리 사용자 작업 영역이 사용될 수 있으며, 그리고/또는 선택적으로 휘발성 메모리의 백업이 휘발성 메모리에 로딩될 수 있다. 이는 사용을 위한 비활성 메모리의 양호한 사본을 제공할 수 있다. 문제나 정지가 또 발생했다면, 저장된 비활성 메모리의 이전 버전이 이용될 수 있다. 선택적으로, 사용자(들)는 문제를 통보받고 이들이 입력한 것 및/또는 이들이 어떻게 데이터를 입력하는지 그리고/또는 다른 행동을 변경할 것을 요청받을 수 있다. 선택적으로, 프로세스 감시자 및/또는 에러 검출 시스템은 문제를 인식하는데 사용될 수 있다. 선택적으로, 제 2 CE가 사용될 때, 충돌을 피하기 위해 비활성 메모리의 이전 백업을 이용하고 그리고/또는 제 2 시스템에 데이터를 다르게 처리할 것을 명령하도록 제어 방법이 선택될 수 있다.In one embodiment, the data in volatile memory may be copied and / or stored prior to execution of the instruction and / or backed up to other memory regions and / or logical devices. Consecutive backups of data prior to execution of the command may be stored. And if a problem such as a hang occurs when a command is executed, a new second memory system and / or a second self repair user workspace may be used, and / or optionally a backup of volatile memory may be loaded into volatile memory. . This can provide a good copy of inactive memory for use. If another problem or hang occurs again, the previous version of the stored inactive memory can be used. Optionally, the user (s) may be informed of the problem and asked to change what they entered and / or how they enter data and / or other behavior. Optionally, process monitors and / or error detection systems can be used to recognize the problem. Optionally, when the second CE is used, the control method may be selected to use a previous backup of the inactive memory to avoid conflicts and / or instruct the second system to process the data differently.

수리를 행하는 다른 방법은 예를 들어 다수의 CE를 분리하여 준비하는 것이다. 이들 CE는 RAM 디스크, RAM, 쉘, 휘발성 메모리 또는 다른 데이터 저장소 형태일 수 있으며, 관련 RAM, 및/또는 처리, 및/또는 연산을 가질 수도 있으며, 하나 이상의 마스터 템플릿 전부 또는 일부의 사본을 포함할 수 있다. 예를 들어, CE를 분리된 백업에서 현재 CE로 전환하도록 통신을 활성화 및/또는 비활성화함으로써 분리가 형성될 수 있다.Another way of doing the repair is to prepare a number of CEs separately, for example. These CEs may be in the form of RAM disks, RAM, shells, volatile memory, or other data storage, may have associated RAM, and / or processing, and / or operations, and may include copies of all or part of one or more master templates. Can be. For example, separation may be formed by enabling and / or deactivating communication to switch the CE from the separate backup to the current CE.

선택적으로, 일 실시예에서 하나 이상의 비참여 및/또는 비확인 파일이 임시 저장 영역에 나타나는 경우에(예를 들어, 데이터가 임시 저장 영역에 있어야 하는 것에 관여하는 정보는 보호된 데이터베이스에 나타나지 않는 하나 이상의 파일), 예를 들어 제어 방법 및/또는 운영 시스템, 및/또는 ROM의 코드는 이러한 파일에 사용자의 주의를 끌어들일 수 있다. 사용자에게는 파일(들)의 파기 및/또는 저장, 및/또는 파일(들)이 의심스러운 어떤 방식임을 지시하는 표시를 하는 옵션이 부여될 수 있으며, 그리고/또는 추가 검사 및/또는 확인을 필요로 할 수도 있다. 다른 실시예에서, 미확인 파일은 삭제되고 그리고/또는 데이터 저장 장치에 저장되며 그리고/또는 추가 검사를 위해 표시될 수도 있고, 그리고/또는 추가 조사를 위해 어딘가에, 예를 들어 네트워크 관리자 및/또는 바이러스 검사 엔티티에 자동 및/또는 수동으로 전송될 수도 있다.Optionally, in one embodiment where one or more nonparticipating and / or non-confirmed files appear in temporary storage (e.g., information relating to what the data should be in temporary storage does not appear in the protected database). Above files), for example, control methods and / or operating systems, and / or code in a ROM may draw user attention to such files. The user may be given the option of destroying and / or storing the file (s), and / or indicating that the file (s) are in any suspicious manner and / or require further inspection and / or confirmation. You may. In another embodiment, the unidentified file may be deleted and / or stored on a data storage device and / or displayed for further inspection, and / or somewhere for further investigation, for example a network administrator and / or virus scan. It may be sent automatically and / or manually to the entity.

일 실시예에서, 하나 이상의 데이터 자장 장치(들)는 읽기 전용과 읽기/쓰기 모드 및/또는 잠금 및/또는 해제 모드, 및/또는 액세스 가능 및/또는 액세스 불가 모드 사이에 전환되는 하드웨어 및/또는 소프트웨어일 수 있다. 일례로, 사용자는 읽기 전용 데이터 저장 장치로부터 파일을 열고, 그 파일에 대해 작업하며, 사용자가 파일을 저장할 때는 임시 저장 영역에 저장된다. 선택적으로, 일부 또는 모든 파일을 닫을 때, 제어 로직 및/또는 방법은 다음 단계들 중 하나 이상을 수행할 수도 있고, RAM을 소거 및/또는 리셋할 수도 있고, 프로세서를 소거/리셋할 수도 있 으며, 그리고/또는 하나 이상의 데이터 저장 장치를 해제 및/또는 잠금, 및/또는 읽기/쓰기 및/또는 읽기 전용으로 만들 수 있으며, 임시 저장소에서 데이터 저장 장치로 데이터를 이동시킬 수도 있고, 하나 이상의 데이터 저장 장치(들)를 닫고/잠그고/읽기 전용으로 만들 수도 있고, 선택적으로 임시 저장 영역을 소거/리셋할 수도 있고, (선택적으로 수리 프로세스를 실행하며), 다음 사용자 명령을 기다릴 수 있다. 일 실시예에서, 임시 저장소는 휘발성 및/또는 비휘발성 메모리로 구성될 수 있다. 일례로, 랜덤 액세스 메모리 및/또는 플래시 ROM, 및/또는 다른 데이터 저장소가 사용될 수 있다. 일 실시예에서, 문서 간 데이터 복사를 위해, 복사할 데이터가 RAM 및/또는 휘발성 메모리의 하나 이상의 특정 주소(들)로 로딩될 수도 있다. 붙이기 명령 수신시, 데이터가 실행될 수 없게 하는 복사 프로세스를 이용하여 데이터가 전달될 수 있다. 예를 들어, 데이터는 실행될 수 없는 ASCII 텍스트만을 전송하도록 간소화될 수 있다.In one embodiment, the one or more data magnetic device (s) are hardware and / or switched between read only and read / write modes and / or lock and / or release modes, and / or accessible and / or inaccessible modes. May be software. In one example, a user opens a file from a read-only data storage device, works with the file, and is stored in a temporary storage area when the user saves the file. Optionally, when closing some or all of the files, the control logic and / or method may perform one or more of the following steps, may erase and / or reset the RAM, erase / reset the processor, And / or release and / or lock one or more data storage devices and / or make them read / write and / or read-only, move data from temporary storage to data storage, or store one or more data You can close / lock / read-only the device (s), optionally erase / reset the temporary storage area (optionally run the repair process), and wait for the next user command. In one embodiment, temporary storage may be comprised of volatile and / or nonvolatile memory. In one example, random access memory and / or flash ROM, and / or other data storage may be used. In one embodiment, for copying data between documents, the data to be copied may be loaded to one or more specific address (es) of RAM and / or volatile memory. Upon receipt of the paste command, the data may be delivered using a copying process that makes the data inoperable. For example, data can be simplified to only transmit ASCII text that cannot be executed.

일 실시예에서, 파일은 보호 저장 장치에서 열릴 수 없지만, 제어 환경과 같은 "보안" 인터페이스로부터 수행되는 한, 예를 들어 이에 한정되는 것은 아니지만 복사, 이동, 삭제, 플래그, 백업, 아카이브 및 다른 기능을 할 수도 있다.In one embodiment, the file cannot be opened in a protected storage, but as long as it is performed from a "secure" interface, such as a controlled environment, for example, but not limited to, copy, move, delete, flag, backup, archive and other functions You can also do

일 실시예에서, 우선권을 변경하고, 마스터 템플릿을 수정하고, 백업을 삭제하거나 제어 환경에 다른 관리 이벤트를 제공하는 등의 명령을 실행하기 위해, 예를 들어 자체 사용자 인터페이스 소프트웨어를 가질 수 있는 제어 환경과 같은 보안 환경에서 관리가 일어나야 한다. 여기서 분리라는 용어는 설명하고 있는 시점에는 분리되고, 여기서 설명한 다른 특정 시점에는 분리되지 않는다는 개념을 전달 하는데 사용될 수 있다. 예를 들어, CE는 사용자 데이터가 실행되고 있을 때 수리 프로세스가 실행될 때까지 분리될 수 있다. 그 다음, 수리 프로세스를 실행하기 위해, 예를 들어 읽기 전용 마스터 템플릿과의 통신이 확립될 수 있으며, 수리가 이루어진 다음, 네트워크와의 통신과 같이 CE와의 통신이 확립될 수 있다. 분리는 필요에 따라 이용되며 해킹 및 바이러스 확산을 방지할 필요가 있을 때 이용된다.In one embodiment, a control environment that may have its own user interface software, for example, to execute commands such as changing priorities, modifying master templates, deleting backups, providing other management events to the control environment, and the like. Management should take place in a secure environment. The term separation may be used to convey the concept of separation at a point in time that is described, and not at other specific points in time described herein. For example, the CE may be separated until the repair process is executed while the user data is being executed. Then, for example, communication with the read-only master template may be established to execute the repair process, and after repair is made, communication with the CE may be established, such as with the network. Isolation is used as needed and when needed to prevent hacking and virus outbreaks.

마스터 템플릿을 참조하면, CE에 사용되는 마스터 템플릿의 "일회용 사본"이 여러 방식으로 다양한 기준을 이용하여 생성될 수 있다. 일 실시예에서, CE의 다양한 마스터 템플릿이 생성될 수 있다. 마스터 템플릿의 생성 기준이 확립될 수 있다. 예를 들어, 한 가지 기준은 컴퓨터/연산 장치에 공통으로 사용되는 프로그램의 선택을 기초로 할 수 있다. 예를 들어, 컴퓨터 사용자가 (1) 워드 처리 프로그램, (2) 이메일 프로그램, (3) 2개의 인터넷 브라우저 및 팝업 방지 유틸리티 및 온라인 경매 추적 프로그램을 가장 일반적으로 사용하며, 보다 적은 범위까지는 다양한 다른 애플리케이션, 게임, 유틸리티 및/또는 다른 프로그램들을 사용하는 것으로 가정한다. 이러한 예를 이용하여, 마스터 템플릿(들)은 기준으로서 필요로 하는 것들 각각을 이용하여 생성될 수 있다. 따라서 어떤 마스터 템플릿은 운영 시스템 및 워드 처리 프로그램을 포함할 수 있고, 다른 마스터 템플릿은 운영 시스템 및 이메일 프로그램을 포함할 수 있다. 다른 마스터 템플릿은 운영 시스템, 2개의 인터넷 브라우저 및 팝업 차단 유틸리티, 온라인 경매 추적 프로그램을 포함할 수 있고, 또 다른 마스터 템플릿은 사용자 소프트웨어 전부를 포함할 수 있다.Referring to the master template, a "disposable copy" of the master template used for CE can be created using various criteria in various ways. In one embodiment, various master templates of the CE may be generated. Generation criteria of the master template may be established. For example, one criterion may be based on the selection of a program commonly used for computers / computing devices. For example, computer users most commonly use (1) word processing programs, (2) e-mail programs, (3) two Internet browsers and pop-up prevention utilities, and online auction tracking programs, to a lesser extent Assume using games, utilities, and / or other programs. Using this example, the master template (s) can be created using each of those needed as criteria. Thus, some master templates may include an operating system and a word processing program, and other master templates may include an operating system and an email program. Another master template may include an operating system, two internet browsers and a pop-up blocker utility, an online auction tracking program, and another master template may include all of the user software.

다른 실시예에서, 하나의(또는 그 이상의) 마스터 템플릿이 생성될 수 있으 며, 기준을 충족시키는데 필요한 마스터 템플릿의 일부만이 복사되어 하나 이상의 CE(들)를 생성할 수 있다. 예를 들어, 하나의 마스터 템플릿이 있을 수 있지만, 이는 하나 이상의 CE에 마스터 템플릿의 일부를 생성하는데 사용될 수 있다. 예를 들어, 상술한 기준을 이용하여, 어떤 마스터 템플릿은 사용자에 의해 가능한 용도로 준비된 CE를 생성하는데 사용될 수 있다.In another embodiment, one (or more) master template may be created, and only a portion of the master template needed to meet the criteria may be copied to generate one or more CE (s). For example, there can be one master template, but it can be used to create part of a master template in one or more CEs. For example, using the criteria described above, some master templates can be used to create a CE prepared for possible use by the user.

일 실시예에서, 사용자는 이용/오픈할 CE(들)를 선택할 수도 있고, CE(들)에 데이터를 복사할 수도 있다. 선택적으로, CE의 선택 및/또는 사용할 마스터 템플릿의 사본은 자동으로 일어날 수도 있고, 코드에 의해 조직화될 수도 있다. 예를 들어, 사용자가 오픈할 워드 처리 문서를 선택한다면, 문서가 선택될 때 코드가 적절한 워드 처리 소프트웨어를 포함하는 CE의 검색을 실행할 수도 있고, 그리고/또는 적절한 소프트웨어의 위치를 확인할 데이터베이스 및/또는 디렉터리를 검사할 수도 있으며, 그리고/또는 다른 수단을 이용하여 정확한 소프트웨어 및/또는 사용할 CE를 식별할 수도 있다.In one embodiment, the user may select the CE (s) to use / open and copy data to the CE (s). Optionally, the selection of CE and / or a copy of the master template to use may occur automatically or may be organized by code. For example, if the user selects a word processing document to open, the code may perform a search of the CE containing the appropriate word processing software when the document is selected, and / or a database and / or to locate the appropriate software. The directory may be examined and / or other means may be used to identify the correct software and / or CE to use.

본 발명의 일부 실시예에서는, 하나, 여러 또는 모든 계산 환경으로부터의 데이터가 단일 디스플레이 장치(또는 운영중인 계산 환경에 있는 것보다 적은 디스플레이 장치 세트에 디스플레이되어, 디스플레이 장치 및 서브 시스템을 오염 없이 공유하는 바람직함이 있다.In some embodiments of the invention, data from one, several, or all computing environments is displayed on a single display device (or less set of display devices than in a running computing environment, sharing the display device and subsystems without contamination). There is a preference.

일 실시예에서, 제어 환경은 다수의 동작 모드를 이용할 수 있다. 예를 들어, 제 1 동작 모드에서 제어 환경은 ASCII 및 확장된 ASCII에 대해서는 제외하고 사용자 계산 환경들 사이의 복사를 허용하지 않으며, 그리고/또는 네트워크상에서 의 파일 공유를 허용하지 않는다. 제 2 동작 모드에서, 제어 환경은 미지의 실행 가능한 코드의 복사를 허용할 수 있으며, 그리고/또는 네트워크상에서의 파일 공유를 허용하게 된다. 제 1 모드는 "해킹 및 바이러스에 대한 면역체"로서 분류될 수 있는 반면, 제 2 동작 모드는 "해킹 및 바이러스에 대한 저항체" 또는 "비보안(non-secure)"으로서 분류될 수도 있다. 제 2 동작 모드로 생성된 문서들은 예를 들어 "비보안" 문서 라벨이 붙을 수 있다. 추가 동작 모드가 이용될 수도 있다. 예를 들어 제어 환경 및/또는 사용자 및/또는 관리자에 의해 전환 모드가 이루어질 수 있다. 전환은 자동일 수도 있고, 그리고/또는 수동 전환 프로세스에 의해 또는 검출된 어떤 상태에 의해 트리거될 수도 있다.In one embodiment, the control environment may use multiple modes of operation. For example, in the first mode of operation the control environment does not allow copying between user computing environments except for ASCII and extended ASCII, and / or does not allow file sharing on the network. In the second mode of operation, the control environment may allow copying of unknown executable code and / or allow file sharing on a network. The first mode may be classified as "immune against hacking and viruses" while the second mode of operation may be classified as "resistance against hacking and viruses" or "non-secure". Documents created in the second mode of operation may be labeled, for example, "non-secure" document. Additional modes of operation may be used. For example, the switching mode may be made by the control environment and / or the user and / or the administrator. The switchover may be automatic and / or triggered by a manual switchover process or by any state detected.

발명의 실시예에 의해 구현될 수 있는 많은 다른 가능한 모드가 있다. 예를 들어, 다양한 관리 모드가 있을 수 있다. 관리 모드의 일례로, 사용자는 보호 저장 장치 또는 제어 환경과 같은 하나 이상의 계산 환경에 대해 수리 및/또는 유지를 수행하기 위해 키 또는 패스워드, 또는 신원 또는 승인을 검증하는 임의의 수단을 이용해야 할 수도 있다. 관리 모드 및/또는 수리 모드의 제 2 예에서, 보호 저장 장치(들), 제어 환경(들)이 하나 이상의 데이터 저장 장치에 자동으로 저장될 수도 있고, 재포맷화/리셋/삭제될 수도 있으며, 필요에 따라 재로딩되어 상태를 원래 방식으로 재생성할 수도 있다. 제어 환경과 같은 다양한 환경의 마스터 템플릿이 이용될 수 있으며, 적당한 승인 및 전환에 의해 유지 프로세스 동안 다른 환경이 제어 환경에 대한 수리를 수행할 수도 있다. 일 실시예에서, 이러한 전환은 예정대로 일어날 수도 있고, 그리고/또는 사용자에 의해 트리거될 수도 있다.There are many other possible modes that can be implemented by embodiments of the invention. For example, there can be various management modes. In one example of a management mode, a user may need to use a key or password, or any means of verifying identity or authorization, to perform repairs and / or maintenance on one or more computing environments, such as a protected storage or control environment. have. In a second example of managed mode and / or repair mode, the protected storage device (s), control environment (s) may be automatically stored on one or more data storage devices, reformatted / reset / deleted, It can also be reloaded as needed to recreate the state in the original way. Master templates in various environments, such as the control environment, may be used, and other environments may perform repairs to the control environment during the maintenance process with proper approval and conversion. In one embodiment, this transition may occur as scheduled and / or may be triggered by the user.

다른 환경에서, 제어 환경은 보조 저장 장치에 저장된 각 파일을 라벨링할 수도 있다. 파일이 알려지지 않은 것이거나 신뢰할 수 없는 것이라면, 파일은 예를 들어 "신뢰할 수 없다"라고 라벨링될 수 있는 반면, 파일이 원래의 환경에서 생성될 수 있었다면, 제어 환경은 파일을 "신뢰"로 라벨링할 수 있다. 일례로, "해킹 및 바이러스에 대한 면역체" 모드에서, 제어 환경은 신뢰성 있는 데이터를 제 1 사용자 계산 환경에서 제 2 사용자 계산 환경으로의 복사를 가능하게 할 수 있지만, 제 2 사용자 계산 환경으로의 "신뢰성 없는" 데이터의 복사를 불가능하게 할 수 있다. "보안이 덜 된" 모드로의 전환은 제어 환경이 신뢰성 없는 코드가 제 1 사용자 계산 환경에서 제 2 사용자 계산 환경으로 복사되게 할 수 있으며, 결과적인 파일은 "신뢰성 없음"이라고 라벨링될 수도 있다.In another environment, the control environment may label each file stored on the secondary storage device. If the file is unknown or unreliable, the file may be labeled "untrusted", for example, whereas if the file could be created in the original environment, the control environment may label the file as "trusted". Can be. In one example, in the “immune against hacking and viruses” mode, the control environment may enable copying of reliable data from the first user computing environment to the second user computing environment, but the “ You can disable copying of "unreliable" data. Switching to the "less secure" mode may cause the control environment to copy untrusted code from the first user computing environment to the second user computing environment, and the resulting file may be labeled "untrusted".

다른 실시예에서는, 어떤 모드에서 2개 이상의 계산 환경에 링크된 데이터가 이들 환경 사이에 직접 복사될 수 있다. 다른 실시예에서는, 신뢰성 있는 링크된 데이터 그룹이 사용자 환경으로 복사 또는 이동될 수도 있고, 이들 사이에 데이터 복사될 수도 있으며, 그리고/또는 모든 데이터가 신뢰성 있다면 크로스 링크될 수 있다. 따라서 링크된 데이터의 전체 데이터베이스 및 세트가 사용자 계산 환경으로 이동 또는 복사될 수도 있고, 다양한 문서 및/도는 데이터베이스 간 데이터의 크로스 복사 및 링크에 의해 조작될 수도 있다. 모든 데이터가 신뢰성 있다면, 데이터는 모드 하나의 사용자 계산 환경에서 함께 조작될 수 있다. (혹은 제 2, 제 3 환경 등 하나 이상의 환경에서) 사용자 계산 환경은 제 1 계산 환경과 직접 통신할 수 있는데, 이는 모든 코드가 신뢰성 있기 때문이다. 다른 신뢰성 없는 동작 모드에서, 신뢰성 없는 데이터는 신뢰성 있는 또는 신뢰성 없는 데이터와 합병하여 신뢰성 없는 데이터가 될 수도 있고, 그와 같이 라벨링된다. 이러한 방식으로 링크된 데이터 및 데이터베이스들의 전체 데이터베이스가 신뢰성 있는 환경에서 유지 및 공유될 수 있다.In other embodiments, data linked to two or more computing environments in some modes may be copied directly between these environments. In other embodiments, trusted linked data groups may be copied or moved to the user environment, data may be copied between them, and / or cross linked if all data is reliable. Thus, the entire database and set of linked data may be moved or copied into a user computing environment, and various documents and / or operations may be manipulated by cross copying and linking data between databases. If all data is reliable, the data can be manipulated together in a mode one user computing environment. The user computing environment (or in one or more environments, such as the second and third environments) may communicate directly with the first computing environment because all code is reliable. In other unreliable modes of operation, unreliable data may be merged with reliable or unreliable data and become unreliable data and thus labeled. In this way, the entire database of linked data and databases can be maintained and shared in a trusted environment.

다른 실시예에서, 이러한 새로운 기술을 이용한 컴퓨터로 구성된 네트워크가 신뢰성 있는/보안 통신 라인을 통해 전달되는 신뢰성 있는 데이터, 데이터베이스 및 링크된 데이터 문서들을 공유 및 혼합할 수 있다.In another embodiment, a computer-configured network using this new technology may share and mix reliable data, databases, and linked data documents delivered over a trusted / secure communication line.

일 실시예에서, 제어 계산 환경은 예를 들어 신뢰성 있는 파일과 신뢰성 없는 것으로 라벨링된 파일과의 혼합을 결코 가능하게 할 수 없다. 이 방법은 신뢰성 있는/보안 네트워크 접속에 의해 부여된 전체 컴퓨터 네트워크가 신뢰성 있는 파일, 데이터베이스 및 링크된 데이터를 유리하게 공유 및 함께 혼합할 수 있게 하는 동시에, 컴퓨터상에 신뢰성 없는 파일을 가지며 그 신뢰성 없는 파일들을 위험하게 하지 않고 이러한 신뢰성 없는 파일들을 사용하는 능력을 가질 수 있다.In one embodiment, the control computing environment can never enable mixing of, for example, files that are trusted and files that are labeled as untrusted. This method allows the entire computer network granted by a trusted / secure network connection to advantageously share and mix together trusted files, databases and linked data, while having unreliable files on the computer You can have the ability to use these untrusted files without putting them at risk.

일 실시예에서, 서버는 여기서 설명한 기술에 있으며, 클라이언트 노드들은 보안/신뢰성 있는 네트워크 접속에 의해 접속될 수 있고, 클라이언트 노드들은 종래 기술의 컴퓨터로 구성될 수 있다. 이러한 예에서, 서버는 다음 단계들: (1) 클라이언트 컴퓨터 하드 드라이브를 재포맷하고 메모리를 소거하는 단계; (2) 사용자가 데스크탑 환경에서 파일을 선택한 후 사용자 컴퓨터에 데스크탑 환경에 대한 액세스를 제공하는 단계; (3) 요청받은 파일을 사용자 환경에 제공하고, 데스크탑 환경과의 통신을 예를 들어 파일 "저장"을 의미하는 1비트 및 1비트 이상으로 제한하 여, 파일을 저장하고 계산 환경을 제거하는 단계를 수행할 수 있다. 또한, (4) 위험한 상태로 제어 환경에 놓이지 않는 방식으로 파일을 저장하기 위해, 사용자 파일이 사용자 계산 환경에 의해 클라이언트 컴퓨터로부터 서버상에 복사된 다음, 사용자 계산 환경에 위치하는 데이터를 저장하는 일반적인 방식으로 저장될 수 있는 단계가 있다. 그 다음, (5) 클라이언트가 그와 같이 할 때, 클라이언트 컴퓨터는 서버에 의해 재포맷화 및 리셋될 수 있다. 선택적으로, 클라이언트는 "씬 클라이언트"로서 동작할 수 있어 클라이언트 컴퓨터에 데이터가 거의 또는 전혀 다시 복사될 필요가 없다.In one embodiment, the server is in the technology described herein, where the client nodes can be connected by a secure / reliable network connection, and the client nodes can be configured as computers of the prior art. In this example, the server comprises the following steps: (1) reformatting the client computer hard drive and erasing the memory; (2) providing a user computer with access to the desktop environment after the user selects the file in the desktop environment; (3) providing the requested file to the user's environment and limiting communication with the desktop environment to, for example, 1 bit and 1 bit or more, meaning file "save", thereby saving the file and removing the computing environment Can be performed. In addition, (4) in order to store a file in such a way that it is not placed in the control environment in a dangerous state, the user file is copied from the client computer to the server by the user computing environment and then stored in the user computing environment. There are steps that can be stored in a manner. Then, (5) when the client does so, the client computer can be reformatted and reset by the server. Optionally, the client can operate as a "thin client" so that little or no data needs to be copied back to the client computer.

일 실시예에서, 신뢰성 없다고 표시된 파일들은 예를 들어 워드 처리 문서로부터 임의의 잠재적으로 실행 가능한 코드를 제거하는 "스트리핑" 프로세스에 의해 신뢰성 있게 될 수도 있다. 예를 들어, 신뢰성 없는 파일 데이터는 보안 환경에 ASCII 문자로 복사될 수도 있고, 신뢰성 있는 것으로 분류될 수 있다. 일 실시예에서, 보호 저장 장치는 외부 및/또는 휴대형 및/또는 무정지(hot-swappable) 및/또는 휴대형 미디어일 수 있다. 일 실시예에서, 소프트웨어 및/또는 물리적 버튼 및/또는 스위치 및/또는 조합이 사용되어 계산 환경의 리셋/수리와 같은 이벤트를 트리거할 수 있다.In one embodiment, files marked as untrusted may be made reliable by, for example, a "striping" process that removes any potentially executable code from a word processing document. For example, untrusted file data may be copied to the secure environment as ASCII characters and classified as trusted. In one embodiment, the protective storage device may be external and / or portable and / or hot-swappable and / or portable media. In one embodiment, software and / or physical buttons and / or switches and / or combinations may be used to trigger events such as reset / repair of the computing environment.

은닉될 수도 있고 은닉되지 않을 수도 있는 내부 또는 외부 백업 시스템은 예를 들어 제어 환경에 의해 전환되어, 보호 저장 장치, 마스터 템플릿, 제어 환경의 복사 등을 백업할 수 있다.Internal or external backup systems, which may or may not be concealed, may be switched by the control environment, for example, to back up the protected storage, master template, copy of the control environment, and the like.

이제 임의의 선택된 하나의 계산 환경 또는 계산 환경 세트로부터의 데이터 가 어떻게 디스플레이되고 사용될 수 있는지에 관한 설명에 주목한다. 이러한 데이터는 이에 한정되는 것은 아니지만, 계산 환경에서 일어나는 데이터 또는 활성화의 비디오 출력 및 표현뿐 아니라, 처리 에피소드 동안 계산 환경에 의해 또는 계산 환경 내에서 사용되거나 생성되는 실제 입력, 출력 및 중간 데이터 세트 또는 파일을 포함할 수 있다.Attention is now directed to the description of how data from any selected one computing environment or set of computing environments can be displayed and used. Such data is not limited to, but is not limited to, video output and representation of data or activations occurring in the computational environment, as well as actual input, output, and intermediate data sets or files used or generated by or within the computational environment during processing episodes. It may include.

윈도우 기반 사용자 인터페이스를 포함하는 일 실시예에서, 모든(또는 선택된) 윈도우, 아이콘 (및 이러한 아이콘이 나타내는 데이터나 애플리케이션 프로그램의 명칭)에 대한 모든(또는 선택된) 크기, 형태 및 위치 좌표, 및 다른 관련 데이터 및/또는 식별 수단이 (임의의 코드 폭발이 포함되고 외부적으로는 해롭지 않기 때문에 어떤 실시예에서는 "폭발실" 또는 "x-룸")이라고도 하는) 계산 환경으로부터 시스템 내의 제어 엔티티, 일반적으로는 이미 설명한 CSCE나 CCE 계산 환경과 같은 (어떤 실시예에서는 "브레인"이라고도 하는) 제어 계산 환경으로 전송된다. 이러한 정보는 예를 들어 다양한 계산 환경 중 하나 이상에서 실행하는 컴퓨터 프로그램 소프트웨어 명령을 이용하는 발명의 절차를 이용하여 또는 단일 동시 발생 계산 환경 동작이 지원될 때 일시적으로 분리되는 방식으로 제어 계산 환경에 제공될 수 있다. 대안으로, 이들 전부 또는 일부는 제어 계산 환경에 의해 또는 제어 계산 환경 내에서 생성될 수 있다.In one embodiment, including a window-based user interface, all (or selected) sizes, shapes, and position coordinates for all (or selected) windows, icons (and names of data or application programs that these icons represent), and other related Control entities in the system, generally from a computing environment (generally referred to as "explosion chambers" or "x-rooms" because the data and / or means of identification include arbitrary code explosions and are not harmful externally), generally Is sent to a control calculation environment (also called "brain" in some embodiments), such as the CSCE or CCE calculation environment described above. Such information may be provided to the control computing environment, for example, using a procedure of the invention using computer program software instructions executing in one or more of the various computing environments or in a temporarily separated manner when a single concurrent computing environment operation is supported. Can be. Alternatively, all or some of these may be generated by or within the control calculation environment.

제어 계산 환경에 의해 저장 및 추적된 이러한 데이터는 여기서 "계산 환경 데이터" 또는 "x-룸 데이터"라 한다.Such data stored and tracked by the control computing environment is referred to herein as "computing environment data" or "x-room data".

추가로, 제어 계산 환경 또한 또는 대안으로, 예를 들어 각 "레이어"나 "프 로세스"가 생성된 순서 및 각 윈도우가 생성된 순서를 나타내는 데이터와 같은 제어 데이터나 "브레인 데이터"라 하는 다른 데이터를 추적할 수도 있다. 선택적 또는 활성화 윈도우 또는 프로세스에 대해 정보를 유지할 수도 있다.In addition, the control calculation environment or alternatively, for example, control data or other data called "brain data" such as data representing the order in which each "layer" or "process" was created and the order in which each window was created. You can also track. Information may also be maintained about optional or active windows or processes.

일부 실시예에서 설명한 그리고 다른 실시예에 관련하여 시스템 "브레인"이라고도 하는 CSCE나 CCE와 같은 제어 계산 환경은 마우스 커서의 또는 다른 포인팅 장치 위치 및/또는 키보드나 다른 사용자 입력 활동을 추적할 수 있다. 이와 같이 제어 계산 환경이 각 계산 환경에 의해 생성된 오픈 윈도우, 아이콘 등의 위치에 대한 마우스 커서의 위치(마우스 또는 포인팅 장치 클릭 발생시)를 판단할 수 있다. 본 명세서는 주로 키보드 및 마우스 명령을 이용하는 인간 사용자 상호 작용을 개시하고 있지만, 사실 발명의 시스템 및 방법은 이에 한정되는 것은 아니지만, 터치 스크린 상호 작용 및 명령, 음성 상호 작용 및 명령, 드롭다운 메뉴, 핫 스폿 선택 상호 작용 및 명령, 기능 버튼 누름, 펜 스타일러스 상호 작용 및 명령, 및 다양한 다른 사용자 입력 및 상호 작용 방법 및 장치와 같이 공지된 다양한 사용자 상호 작용에 적용될 수 있으며, 또는 개발이 예상될 수 있는 것으로 인식된다.A control computing environment, such as CSCE or CCE, also described in some embodiments and in relation to other embodiments, the system “brain,” may track the position of the mouse cursor or other pointing device and / or keyboard or other user input activity. In this way, the control calculation environment can determine the position of the mouse cursor (when a mouse or pointing device click occurs) with respect to the positions of open windows, icons, etc. generated by each calculation environment. Although the present disclosure primarily discloses human user interaction using keyboard and mouse commands, in fact, the systems and methods of the invention are not limited thereto, but touch screen interactions and commands, voice interactions and commands, drop-down menus, hot Applicable to a variety of known user interactions, such as spot selection interactions and commands, function button presses, pen stylus interactions and commands, and various other user inputs and interaction methods and devices, or may be expected to be developed. It is recognized.

따라서 마우스 위치 "클릭"(또는 다른 "선택")을 계산하고 할당된 계산 환경의 윈도우 위치 (및 어떤 윈도우가 "앞으로" 또는 "활성화"되는지)를 비교함으로써, CSCE가 구체적으로 어떤 윈도우(또는 아이콘, 또는 아이템 또는 계산 환경 프로세스)가 선택될 것이며 그 "클릭" 입력을 수신하는지를 판단할 수 있다.Thus, by calculating the mouse position "click" (or other "selection") and comparing the window position (and which window is "forward" or "activated") of the assigned computing environment, the CSCE specifically selects which window (or icon) , Or an item or computational environment process) will be selected and can receive its "click" input.

따라서 마우스 버튼이 클릭되면, 제어 계산 환경이 제어 계산 환경에 의해 수집된 정보를 기초로, 예를 들어 어떤 레이어가 종래의 윈도우 항에서 "활성화 및 앞으로" 상태가 되는지, 또는 어떤 애플리케이션이 개시되는지, 또는 어느 방향으로 마우스 및 키보드 신호가 재전달되는지를 결정할 수 있다.Thus, when the mouse button is clicked, the control calculation environment is based on the information collected by the control calculation environment, for example which layer is "active and forward" in the conventional window terms, or which application is started, Or in which direction the mouse and keyboard signals are retransmitted.

("CE의") 계산 환경에서 CSCE로의 직접 접속은 이에 한정되는 것은 아니지만 예로서 CSCE(또는 필터)에서 계산 환경으로부터 제 2 (가능하면 전용) ASIC로 제 1(가능하면 전용) ASIC를 사용하여 의도하지 않은 활동 또는 경과를 방지할 수 있다. 이러한 의도하지 않은 결과는 예를 들어 부당한 코드의 배치 또는 확산을 위해 의도된 버퍼 또는 메모리 오버런을 야기하는 어떤 코드 실행일 수 있다. ASIC는 미리 결정된 허가된 처리만이 일어날 수 있도록 필터링 또는 제한 동작을 제공하는 로직 회로의 일례일 뿐이다. 예를 들어, ASIC 형태 또는 다르게 구현되어 "수신기"로서 동작하는 로직이 "x, y" 또는 "라인, 샘플" 상태로서 수신된 통신을 단지 이해하거나 해석할 수 있다. 어떤 실시예에서는, 계산 환경과 CSCE 사이의 통신로에 배치된 단일 ASIC 또는 다른 로직이 의도된 통신에서 원하는 제한 또는 필터링 동작을 제공하기에 충분할 수 있다는 점에 유의한다. (선택적으로 소프트웨어 및/또는 펌웨어를 이용하는) 이러한 ASIC 또는 논리 회로는 가능한 허용된 기능 또는 동작들의 유효한 세트로부터 하나의 기능을 안전하게 무사히 선택하도록 제어될 수도 있고, 또는 이러한 선택을 달성하도록 (보호 또는 다른 보안 저장 장치로부터 코드를 다운로드하거나 제어 신호 또는 신호들을 전송함으로써) 동적으로 프로그래밍될 수도 있다.A direct connection to the CSCE in the ("CE") computational environment is not limited to, for example, using a first (possibly dedicated) ASIC from the computational environment to a second (possibly dedicated) ASIC in the CSCE (or filter). Unintended activity or progress can be prevented. This unintended consequence can be any code execution that causes a buffer or memory overrun, for example, intended for inappropriate placement or spreading of code. The ASIC is just one example of logic circuitry that provides filtering or limiting operations such that only predetermined predetermined processing can occur. For example, logic in ASIC form or otherwise implemented and operating as a "receiver" may only understand or interpret the communication received as a "x, y" or "line, sample" state. Note that in some embodiments, a single ASIC or other logic placed in the communication path between the computing environment and the CSCE may be sufficient to provide the desired limiting or filtering operation in the intended communication. Such ASIC or logic circuitry (optionally using software and / or firmware) may be controlled to safely and safely select one function from a valid set of possible allowed functions or operations, or to achieve such a selection (protection or other By downloading code from a secure storage device or by sending a control signal or signals).

제어 계산 환경에 제공되는 데이터에 포함될 수 있는 "x-룸 데이터"나 사용자 계산 환경 데이터의 예는 이에 한정되는 것은 아니지만, 윈도우 위치 및 크기( 와이어-프레임형); 아이콘 및 이들이 나타내는 것의 명칭; 파일 크기, 파일 위치 및 파일 또는 데이터 세트 레퍼런스나 식별자 중 임의의 하나 이상을 포함할 수도 있고 어느 것도 포함하지 않을 수도 있다. 추가 예로서, 이들은 B-트리, 마스터 디렉터리, 데스크탑 데이터베이스 등을 포함할 수 있다. 또한, 혹은 대안으로, 애플리케이션 프로그램, 드라이버 또는 운영 시스템 구성요소가 파일이나 파일 타입 또는 장치나 장치 타입을 갖는 처리 용량을 상호 동작시키거나 오픈 또는 갖도록 "관련되거나" 의도되는 리스트 또는 다른 데이터 구조나 인덱스를 포함할 수 있다.Examples of "x-room data" or user-calculated environment data that may be included in the data provided to the controlled computing environment include, but are not limited to, window position and size (wire-framed); Names of icons and what they represent; It may or may not include any one or more of a file size, file location, and file or data set reference or identifier. As a further example, they may include B-trees, master directories, desktop databases, and the like. In addition, or in the alternative, a list or other data structure or index in which an application program, driver, or operating system component is “associated” or intended to “interconnect” or have a file or file type or processing capacity having a device or device type It may include.

제어 데이터나 "브레인 데이터"의 예는 레이어, 윈도우 및/또는 프로세서가 생성되는 순서, 이러한 레이어, 윈도우 및/또는 프로세스의 현재 순서 또는 우선순위를 식별하는 데이터; 마우스 또는 포인팅 장치 절대, 스크린 상대, 윈도우 상대 커서 위치 및/또는 이들 또는 다른 데이터의 조합 중 임의의 하나 이상을 포함할 수도 있고 포함하지 않을 수도 있다. 어떤 실시예에서는, 다수의 계산 환경이 비슷한 또는 동일한 속성을 가질 수도 있고, 이러한 데이터 또는 정보 중 일부는 한번 생성된 다음, 각 계산 환경에 관련된 변경이 있으면 그때, 이어지는 업데이트에 대해 각 계산 환경에 대해 수정 또는 개조될 필요가 있을 수 있다.Examples of control data or "brain data" include data identifying the order in which layers, windows and / or processors are created, and the current order or priority of such layers, windows and / or processes; It may or may not include any one or more of a mouse or pointing device absolute, screen relative, window relative cursor position, and / or a combination of these or other data. In some embodiments, multiple computing environments may have similar or identical attributes, and some of this data or information may be generated once, and then for each computing environment for subsequent updates, if there is a change related to each computing environment. It may need to be modified or modified.

다수의 선택적 특징을 포함하는 발명의 여러 실시예를 설명하였지만, 본 발명의 다른 형태 및 특징이 조합되어 함께 사용될 수도 있고 개별적으로 사용될 수도 있음이 명백하다. 이 섹션에서는, 특징들의 특정 조합을 갖는 특정 예시적인 실시예에 주목한다. 이 설명은 예시일 뿐 발명의 범위 또는 진의를 어떤 식으로도 한정하는 것이 아니다. 명세서에서 설명한 발명의 다수의 형태 및 특징은 다음 단 락에서 설명하지 않는다.While various embodiments of the invention have been described that include a number of optional features, it is evident that other forms and features of the invention may be used in combination or may be used separately. In this section, attention is made to certain example embodiments with specific combinations of features. This description is exemplary only and does not limit the scope or spirit of the invention in any way. Many aspects and features of the invention described in the specification are not described in the following paragraphs.

한 형태에서, 발명은 정보 수단을 제공한다. 정보 수단의 일 실시예에서, 정보 수단은 프로그램 및 데이터의 제 1 저장 장치 및 프로세서 로직을 가지며, 사용자 데이터를 포함하는 작업을 수행하기 위한 컴퓨터 프로그램 명령을 실행하는 타입이며, 정보 수단은 개별 제어 처리 환경 및 사용자 처리 환경이 생성되고 유지되어 (1) 미지의 또는 신뢰성 없는 컨텐츠를 갖는 사용자 데이터가 제어 프로세서 로직 환경에서 사용자 데이터에 삽입된 임의의 컴퓨터 프로그램 코드 명령을 실행할 수 있는 컴퓨터 프로그램 코드에 노출되지 않고, (2) 미지의 또는 신뢰성 없는 컨텐츠를 갖는 사용자 데이터가 사용자 프로세서 로직 환경에서 제 1 저장 장치와 분리될 때 제 1 저장 장치와 다른 임시 저장 장치에만 노출되는 것을 특징으로 한다. 정보 수단의 다른 실시예에서, 정보 수단은 개인 데이터 보조 수단일 수도 있고 이를 포함할 수도 있다. 정보 수단의 다른 실시예에서, 정보 수단은 컴퓨터를 포함하거나 컴퓨터이다.In one aspect, the invention provides an information means. In one embodiment of the information means, the information means has a first storage device of the program and the data and the processor logic and is of a type for executing computer program instructions for performing a task comprising user data, the information means being a separate control process. Environments and user processing environments are created and maintained so that (1) user data with unknown or untrusted content is not exposed to computer program code capable of executing any computer program code instructions embedded in user data in a control processor logic environment. And (2) user data having unknown or untrusted content is only exposed to temporary storage other than the first storage device when separated from the first storage device in the user processor logic environment. In another embodiment of the information means, the information means may be or include a personal data assistance means. In another embodiment of the information means, the information means comprises or is a computer.

다른 형태에서, 본 발명은 적어도 하나의 명령을 실행하는 적어도 하나의 처리 로직 장치; 적어도 하나의 명령을 포함하며 사용자 데이터를 포함하는 제 1 데이터 및 제 1 프로그램 코드를 저장하는 제 1 저장 장치; 제 2 데이터를 저장하는 제 2 저장 장치; 자동 제어 하에서 제 1 저장 장치 및/또는 제 2 저장 장치에 처리 로직 장치를 선택 가능하게 그리고 독립적으로 결합 및 분리하며, 처리 로직 장치로부터 스위치 시스템의 상태를 선택하는 적어도 하나의 제어 신호를 수신하는 스위치 시스템을 포함하는 정보 수단을 제공하며, 처리 로직 장치는 다음 조건에 따 라 제어 구조 및 사용자 데이터 구조로 동작한다: (ⅰ) 처리 로직 장치는 처리 로직이 신뢰성 없는 컨텐츠를 갖거나 알려진 제어 환경 내에서 발생하지 않은 데이터 항목을 실행할 수 없는 프로그램 명령에 의해 로딩될 때 제 1 저장 장치와 결합할 수 있고; (ⅱ) 처리 로직 장치는 처리 로직이 신뢰성 없는 컨텐츠를 갖거나 알려진 제어 환경 내에서 발생하지 않은 데이터 항목을 실행할 수 있는 프로그램 명령에 의해 로딩될 때 알려진 정보를 전달하도록 제 1 저장 장치와 결합하지 않거나 제한적으로만 결합할 수 있으며; (ⅲ) 처리 로직 장치는 처리 로직이 신뢰성 없는 컨텐츠를 갖거나 알려진 제어 환경 내에서 발생하지 않은 데이터 항목을 실행할 수 없는 프로그램 명령에 의해 로딩될 때 제 2 저장 장치와 결합할 수 있고; (ⅵ) 처리 로직 장치는 처리 로직이 단지 제 1 저장 장치에서 제 2 저장 장치로 또는 제 2 저장 장치에서 제 1 저장 장치로 데이터 항목을 복사할 수 있는 프로그램 명령에 의해 로딩될 때 제 1 저장 장치 및 제 2 저장 장치와 결합할 수 있다.In another aspect, the invention provides an apparatus comprising: at least one processing logic device for executing at least one instruction; A first storage device including at least one command and storing first data and first program code comprising user data; A second storage device for storing second data; A switch for selectively and independently coupling processing logic devices to the first storage device and / or the second storage device under automatic control, and receiving at least one control signal from the processing logic device to select a state of the switch system; Providing a means of information comprising the system, wherein the processing logic device operates with the control structure and the user data structure under the following conditions: (i) The processing logic device may have untrusted content or be within a known control environment. Can be combined with the first storage device when loaded by a program instruction that cannot execute the data item that has not occurred; (Ii) the processing logic device does not combine with the first storage device to convey known information when the processing logic is loaded by program instructions capable of executing data items that have unreliable content or that do not occur within a known control environment. Only limited combinations can be made; (Iii) the processing logic device is capable of associating with the second storage device when the processing logic is loaded by a program instruction that has unreliable content or cannot execute a data item that does not occur within a known control environment; (Iii) the processing logic device is the first storage device when the processing logic is loaded by a program instruction capable of copying data items only from the first storage device to the second storage device or from the second storage device to the first storage device. And a second storage device.

상술한 정보 수단의 일 실시예에서, 스위치 시스템은 처리 로직 장치를 적어도 다음 방식으로 제 1 저장 장치 및 제 2 저장 장치와 결합 또는 분리할 수 있다: (ⅰ) 처리 로직 장치가 제 1 저장 장치에만 결합하고, (ⅱ), 처리 로직 장치가 제 2 저장 장치에만 결합하고, (ⅲ) 처리 로직 장치가 제 1 및 제 2 저장 장치에 공동으로 결합하고, (ⅵ) 처리 로직 장치가 제 1 저장 장치에도 제 2 저장 장치에도 결합하지 않는다. 상술한 정보 수단의 다른 실시예에서, 처리 로직 장치는 마이크로프로세서를 포함한다. 상술한 정보 수단의 다른 실시예에서, 처리 로직 장치는 마이크로프로세서, 중앙 처리 유닛(CPU), 제어기, 마이크로제어기, ASIC, 로직 회로, 프로그래밍 가능 로직 회로 및 이들의 조합으로 구성된 처리 로직 회로 세트로부터 선택된다. 상술한 정보 수단의 다른 실시예에서, 정보 수단은 컴퓨터, 노트북 컴퓨터, 개인 데이터 보조 수단, 개인 데이터 오거나이저, 셀룰러폰, 휴대 전화, 무선 수신기, 무선 송신기, GPS 수신기, 위성 전화, 자동 내장 컴퓨터, 항공기 내장 컴퓨터, 네비게이션 장치, 가전, 인쇄 장치, 스캐닝 장치, 카메라, 전자 카메라, 텔레비전 수신기, 방송 제어 시스템, 전자 기기, 의학 모니터링 장치, 보안 장치, 환경 제어 시스템, 전자 장치 및 이들의 조합으로 구성된 정보 수단 세트로부터 선택된다. 상술한 정보 수단의 다른 실시예에서, 제 1 데이터 저장 장치 및 제 2 데이터 저장 장치는 회전 자기 하드 디스크 드라이브, 회전 자기 플로피 디스크 드라이브, CD, DVD, 반도체 메모리, 고체 상태 메모리, 화학적 메모리, 자기 메모리, 분자 메모리, 마이크로 드라이브, 플래시 메모리, 소형 플래시 카드 메모리, RAM 메모리, ROM 메모리 및 이들의 조합으로 구성된 저장 장치 세트로부터 개별적으로 선택 가능하며 선택된다.In one embodiment of the information means described above, the switch system may combine or disconnect the processing logic device with the first storage device and the second storage device in at least the following manner: (i) the processing logic device is for the first storage device only. (Ii) the processing logic device couples only to the second storage device, (i) the processing logic device jointly couples to the first and second storage devices, and (i) the processing logic device comprises the first storage device. Nor do they couple to the second storage device. In another embodiment of the information means described above, the processing logic device comprises a microprocessor. In another embodiment of the information means described above, the processing logic device is selected from a processing logic circuit set consisting of a microprocessor, a central processing unit (CPU), a controller, a microcontroller, an ASIC, a logic circuit, a programmable logic circuit, and a combination thereof. do. In another embodiment of the information means described above, the information means may be a computer, a notebook computer, a personal data assistant, a personal data organizer, a cellular phone, a mobile phone, a wireless receiver, a wireless transmitter, a GPS receiver, a satellite phone, an embedded computer, an aircraft. Information means consisting of built-in computer, navigation device, home appliance, printing device, scanning device, camera, electronic camera, television receiver, broadcast control system, electronic device, medical monitoring device, security device, environmental control system, electronic device and combinations thereof Is selected from the set. In another embodiment of the information means described above, the first data storage device and the second data storage device comprise a rotating magnetic hard disk drive, a rotating magnetic floppy disk drive, a CD, a DVD, a semiconductor memory, a solid state memory, a chemical memory, a magnetic memory. And are individually selectable and selected from a set of storage devices consisting of a molecular memory, a micro drive, a flash memory, a small flash card memory, a RAM memory, a ROM memory, and a combination thereof.

상술한 정보 수단의 다른 실시예에서, 적어도 하나의 처리 로직 장치는 다수의 처리 로직 장치를 포함한다. 이 정보 수단의 다른 실시예에서, 다수의 처리 로직 장치 중 적어도 하나는 적어도 하나의 마이크로프로세서를 포함하며, 적어도 하나의 명령은 운영 시스템으로부터의 다수의 컴퓨터 프로그램 코드 세그먼트 및 애플리케이션 프로그램으로부터의 다수의 컴퓨터 프로그램 코드 세그먼트를 포함하며, 스위치 시스템은 제 1 및 제 2 저장 장치에 마이크로프로세서를 선택 가능하게 결합 및 분리하는 전환 구성을 변경하기 위한 스위치 제어 명령을 수신하는 마이크 로프로세서에 결합할 수 있다. 이러한 정보 수단의 다른 실시예에서, 다수의 처리 로직 장치는 처리 로직 장치들 중 하나를 실행하는 자동 제어 시스템에 의해 간헐적으로 차례로 분리되고 통신에 의해 제한된다. 정보 수단의 다른 실시예에서, 제 2 저장 장치는 처리 로직 장치에 연결될 때 처리 동작 도중 임시 저장 장치로서 수행하도록 구성되며, 처리가 에러 상태로 또는 에러 상태 없이 완료되면 각 처리가 개별적으로 발생한 후 자동으로 삭제되고, 에러 상태는 바이러스 또는 다른 부당한 코드 실행의 검출을 포함할 수 있다. 정보 수단의 다른 실시예에서, 다수의 처리 로직 장치 및 적어도 제 1 및 제 2 저장 장치는 특징을 결정한 계산 환경을 생성하도록 동적으로 구성될 수 있다. 정보 수단의 다른 실시예에서, 제 1 저장 장치는 운영 시스템 및 프로그램 구성요소를 갖는 마스터 템플릿 파일 및 사용자 데이터의 보호 사본을 저장한다.In another embodiment of the information means described above, the at least one processing logic device comprises a plurality of processing logic devices. In another embodiment of this information means, at least one of the plurality of processing logic devices comprises at least one microprocessor, wherein the at least one instruction is a plurality of computer program code segments from an operating system and a plurality of computers from an application program. And a program code segment, wherein the switch system is coupled to a microprocessor that receives switch control instructions for changing a switching configuration to selectively couple and detach the microprocessor to first and second storage devices. In another embodiment of this information means, the plurality of processing logic devices are intermittently separated from one another by an automatic control system executing one of the processing logic devices and limited by communication. In another embodiment of the information means, the second storage device is configured to perform as a temporary storage device during a processing operation when connected to the processing logic device, and automatically after each processing occurs individually if the processing is completed in error state or without error state. Error state may include detection of a virus or other invalid code execution. In another embodiment of the information means, the plurality of processing logic devices and at least the first and second storage devices may be dynamically configured to create a computing environment in which the features have been determined. In another embodiment of the information means, the first storage device stores a protected copy of the user data and a master template file having operating system and program components.

다른 형태에서, 본 발명은 적어도 하나의 명령을 실행하는 적어도 하나의 처리 로직 장치, 적어도 하나의 명령을 포함하며 사용자 데이터를 포함하는 제 1 데이터 및 제 1 프로그램 코드를 저장하는 제 1 저장 장치, 및 제 2 데이터를 저장하는 제 2 저장 장치를 갖는 타입의 정보 수단을 동작시키는 방법을 제공하며, 상기 방법은 스위치 시스템의 상태를 선택하기 위한 처리 로직 장치로부터의 적어도 하나의 제어 신호 수신시 자동 제어 하에서 제 1 저장 장치 및/또는 제 2 저장 장치에 처리 로직 장치를 결합 및 분리하도록 선택적으로 그리고 독립적으로 전환하는 단계; 다음 조건에 따라 처리 로직 장치를 제어 구조 및 사용자 데이터 구조로 동작시키는 단계: (ⅰ) 처리 로직이 신뢰성 없는 컨텐츠를 갖거나 알려진 제어 환경 내에서 발생하지 않은 데이터 항목을 실행할 수 없는 프로그램 명령에 의해 로딩될 때 처리 로직 장치와 제 1 저장 장치와의 결합을 허용하고; (ⅱ) 처리 로직이 신뢰성 없는 컨텐츠를 갖거나 알려진 제어 환경 내에서 발생하지 않은 데이터 항목을 실행할 수 있는 프로그램 명령에 의해 로딩될 때 알려진 정보를 전달하도록 처리 로직 장치와 제 1 저장 장치와의 결합을 허용하지 않거나 제한적으로만 허용하며; (ⅲ) 처리 로직이 신뢰성 없는 컨텐츠를 갖거나 알려진 제어 환경 내에서 발생하지 않은 데이터 항목을 실행할 수 없는 프로그램 명령에 의해 로딩될 때 처리 로직 장치와 제 2 저장 장치와의 결합을 허용하고; (ⅵ) 처리 로직이 단지 제 1 저장 장치에서 제 2 저장 장치로 또는 제 2 저장 장치에서 제 1 저장 장치로 데이터 항목을 복사할 수 있는 프로그램 명령에 의해 로딩될 때 처리 로직 장치와 제 1 저장 장치 및 제 2 저장 장치와의 결합을 허용한다.In another aspect, the invention provides at least one processing logic device for executing at least one instruction, a first storage device for storing first data and first program code, the first data comprising at least one instruction and comprising user data, and A method is provided for operating an information means of a type having a second storage device for storing second data, said method under automatic control upon receipt of at least one control signal from a processing logic device for selecting a state of a switch system. Selectively and independently switching to couple and detach the processing logic device to the first storage device and / or the second storage device; Operating the processing logic device into a control structure and a user data structure according to the following conditions: (i) the processing logic is loaded by a program instruction that has unreliable content or cannot execute a data item that does not occur within a known control environment. Allow coupling of the processing logic device with the first storage device when such; (Ii) combining the processing logic device with the first storage device to convey known information when the processing logic is loaded by program instructions capable of executing data items that have unreliable content or that do not occur within a known control environment. Not allowed or only limited; (Iii) allow coupling of the processing logic device with the second storage device when the processing logic is loaded by a program instruction that has untrusted content or cannot execute a data item that does not occur within a known control environment; (Iii) the processing logic device and the first storage device when the processing logic is loaded by a program instruction capable of copying data items only from the first storage device to the second storage device or from the second storage device to the first storage device. And a combination with the second storage device.

정보 수단 동작 방법의 다른 실시예에서, 상기 방법은 임의의 처리 로직 장치가 제 2 저장 장치를 사용하여 사용자 데이터를 처리한 후 제 2 저장 장치를 삭제하는 단계를 더 포함한다.In another embodiment of the method of operating information means, the method further comprises the step of any processing logic device deleting the second storage device after processing the user data using the second storage device.

정보 수단 동작 방법의 다른 실시예에서, 정보 수단은 컴퓨터, 노트북 컴퓨터, 개인 데이터 보조 수단, 개인 데이터 오거나이저, 셀룰러폰, 휴대 전화, 무선 수신기, 무선 송신기, GPS 수신기, 위성 전화, 자동 내장 컴퓨터, 항공기 내장 컴퓨터, 네비게이션 장치, 가전, 인쇄 장치, 스캐닝 장치, 카메라, 전자 카메라, 텔레비전 수신기, 방송 제어 시스템, 전자 기기, 의료용 모니터링 장치, 보안 장치, 환경 제어 시스템, 전자 장치 및 이들의 조합으로 구성된 정보 수단 세트로부터 선 택된다.In another embodiment of the method of operation of the information means, the information means is a computer, a notebook computer, personal data assistant, personal data organizer, cellular phone, mobile phone, wireless receiver, radio transmitter, GPS receiver, satellite phone, auto embedded computer, aircraft Information means consisting of built-in computer, navigation device, home appliance, printing device, scanning device, camera, electronic camera, television receiver, broadcast control system, electronic device, medical monitoring device, security device, environmental control system, electronic device and combinations thereof It is selected from the set.

정보 수단 동작 방법의 다른 실시예에서, 적어도 하나의 처리 로직 장치는 다수의 처리 로직 장치를 포함한다. 정보 수단 동작 방법의 다른 실시예에서, 다수의 처리 로직 장치 중 적어도 하나는 적어도 하나의 마이크로프로세서를 포함하며, 적어도 하나의 명령은 운영 시스템으로부터의 다수의 컴퓨터 프로그램 코드 세그먼트 및 애플리케이션 프로그램으로부터의 다수의 컴퓨터 프로그램 코드 세그먼트를 포함하며, 스위치 시스템은 제 1 및 제 2 저장 장치에 마이크로프로세서를 선택 가능하게 결합 및 분리하는 전환 구성을 변경하기 위한 스위치 제어 명령을 수신하는 마이크로프로세서에 결합할 수 있다.In another embodiment of the method of operating information means, the at least one processing logic device comprises a plurality of processing logic devices. In another embodiment of a method of operating information means, at least one of the plurality of processing logic devices comprises at least one microprocessor, and the at least one instruction includes a plurality of computer program code segments from an operating system and a plurality of applications from an application program. And a computer program code segment, the switch system being coupled to a microprocessor that receives switch control instructions for changing a switching configuration to selectively couple and detach the microprocessor to first and second storage devices.

다른 형태에서, 본 발명은 컴퓨터 PC 카드의 폼 팩터 및 다수의 PCCardBus 인터페이스 접속을 갖는 하우징, 상기 하우징 내에 배치된 다수의 프로세서; 상기 하우징 내에 배치되거나 상기 하우징에 연결된 다수의 데이터 저장 장치; 적어도 사용자 데이터를 저장하기 위해 다수의 데이터 저장 장치로부터 선택된 보호 데이터 저장 장치; 다수의 데이터 저장 장치에 연결되며, 상기 하우징 내에 배치된 하나 이상의 데이터 저장 장치와의 통신을 구성하기 위해 데이터 저장 스위치 구성에 연결된 데이터 저장 스위치 시스템; 적어도 하나의 주변 장치에 연결되며, 상기 하우징 내에 배치된 주변 장치와의 통신을 구성하기 위한 다수의 특징을 포함하는 I/O 시스템에 연결된 I/O 스위치 시스템; 및 다수의 계산 환경을 포함하는 정보 처리 장치를 제공하며, 각각의 계산 환경은 적어도 하나의 프로세서를 포함하고, 다음을 포함하는 다수의 특징으로부터 선택된 적어도 하나의 특징에 의해 식별된다: 데이터 저장 스위치에 연결되며, 데이터 저장 스위치 구성에 따라 적어도 하나의 데이터 저장 장치를 계산 환경에 결합하는 데이터 저장 스위치 통신로; I/O 스위치 시스템에 연결되며, I/O 스위치 시스템 구성에 따라 주변 장치를 계산 환경에 결합하는 I/O 스위치 통신로; 계산 환경은 I/O 스위치 시스템으로부터의 입력 수신 및 I/O 스위치 시스템으로의 출력 전송을 포함하는 처리 활동을 수행할 수 있으며, 처리 활동은 다른 계산 환경의 처리 활동과 개별적으로 수행되고; 데이터 저장 스위치 구조를 구성하고, I/O 스위치 시스템 구조를 구성하는 다수의 계산 환경으로부터 제어 계산 환경이 선택되고, 데이터 저장 스위치 구성은 제어 계산 환경과 보호 데이터 저장 장치와의 통신을 지원하며, 적어도 하나의 사용자가 다수의 계산 환경으로부터 선택된 계산 환경에서 분리되며; I/O 스위치 시스템 구성은 계산 환경의 적어도 하나에 수신 입력을 전달하도록 구성되고, I/O 스위치 시스템 구성은 다수의 계산 환경 중 하나 이상에 의해 생성된 출력을 주변 장치에 전달하도록 구성된다.In another aspect, the invention provides a housing having a form factor of a computer PC card and a plurality of PCCardBus interface connections, a plurality of processors disposed within the housing; A plurality of data storage devices disposed within or connected to the housing; A protected data storage device selected from the plurality of data storage devices for storing at least user data; A data storage switch system coupled to a plurality of data storage devices, the data storage switch system being coupled to a data storage switch configuration to configure communication with one or more data storage devices disposed within the housing; An I / O switch system coupled to at least one peripheral device, the I / O switch system coupled to an I / O system including a plurality of features for configuring communication with a peripheral device disposed within the housing; And an information processing apparatus comprising a plurality of computing environments, each computing environment comprising at least one processor and identified by at least one feature selected from a plurality of features, including: a data storage switch A data storage switch communication path coupled to the at least one data storage device according to the data storage switch configuration; An I / O switch communication path coupled to the I / O switch system and coupling peripherals to the computing environment in accordance with the I / O switch system configuration; The computing environment may perform processing activities including receiving input from the I / O switch system and sending output to the I / O switch system, the processing activities being performed separately from the processing activities of other computing environments; The control computing environment is selected from a plurality of computing environments that make up the data storage switch structure and the I / O switch system structure, and the data storage switch configuration supports communication between the control computing environment and the protected data storage device, at least One user is separated from a selected computing environment from a plurality of computing environments; The I / O switch system configuration is configured to deliver receive inputs to at least one of the computing environments, and the I / O switch system configuration is configured to deliver outputs generated by one or more of the plurality of computing environments to peripherals.

정보 처리 장치의 다른 실시예에서, 다수의 프로세서는 마이크로프로세서, 중앙 처리 유닛(CPU), 제어기, 마이크로제어기, ASIC, 로직 회로, 프로그래밍 가능 로직 회로 및 이들의 조합으로 구성된 처리 로직 회로 세트로부터 개별적으로 선택되고, 다수의 데이터 저장 장치는 회전 자기 하드 디스크 드라이브, 회전 자기 플로피 디스크 드라이브, CD, DVD, 반도체 메모리, 고체 상태 메모리, 화학적 메모리, 자기 메모리, 분자 메모리, 마이크로 드라이브, 플래시 메모리, 콤팩트 플래시 카드 메모리, RAM 메모리, ROM 메모리 및 이들의 조합으로 구성된 저장 장치 세트 로부터 개별적으로 선택 가능하며 선택된다.In other embodiments of the information processing apparatus, the plurality of processors are individually from a set of processing logic circuits consisting of microprocessors, central processing units (CPUs), controllers, microcontrollers, ASICs, logic circuits, programmable logic circuits, and combinations thereof. Multiple data storage devices are selected, rotating magnetic hard disk drive, rotating magnetic floppy disk drive, CD, DVD, semiconductor memory, solid state memory, chemical memory, magnetic memory, molecular memory, micro drive, flash memory, compact flash card Individually selectable and selected from a set of storage devices consisting of memory, RAM memory, ROM memory and combinations thereof.

다른 형태에서, 본 발명은 프로그램 및 데이터의 제 1 저장 장치 및 프로세서 로직을 가지며, 사용자 데이터를 포함하는 작업을 수행하기 위한 컴퓨터 프로그램 명령을 실행하는 타입의 컴퓨터를 제공하고, 상기 컴퓨터는 개별 제어 처리 환경 및 사용자 처리 환경이 생성되고 유지되어 (1) 미지의 또는 신뢰성 없는 컨텐츠를 갖는 사용자 데이터가 제어 프로세서 로직 환경에서 사용자 데이터에 삽입된 임의의 컴퓨터 프로그램 코드 명령을 실행할 수 있는 컴퓨터 프로그램 코드에 노출되지 않고, (2) 미지의 또는 신뢰성 없는 컨텐츠를 갖는 사용자 데이터가 사용자 프로세서 로직 환경에서 제 1 저장 장치와 분리될 때 제 1 저장 장치와 다른 임시 저장 장치에만 노출되는 것을 특징으로 한다.In another aspect, the present invention provides a computer of the type having a first storage device of program and data and processor logic and executing computer program instructions for performing a task comprising user data, the computer having a separate control process. Environments and user processing environments are created and maintained so that (1) user data with unknown or untrusted content is not exposed to computer program code capable of executing any computer program code instructions embedded in user data in a control processor logic environment. And (2) user data having unknown or untrusted content is only exposed to temporary storage other than the first storage device when separated from the first storage device in the user processor logic environment.

다른 형태에서, 본 발명은 적어도 하나의 명령을 실행하는 적어도 하나의 처리 로직 장치; 적어도 하나의 명령을 포함하며 사용자 데이터를 포함하는 제 1 데이터 및 제 1 프로그램 코드를 저장하는 제 1 저장 장치; 제 2 데이터를 저장하는 제 2 저장 장치; 자동 제어 하에서 제 1 저장 장치 및/또는 제 2 저장 장치에 처리 로직 장치를 선택 가능하게 그리고 독립적으로 결합 및 분리하며, 처리 로직 장치로부터 스위치 시스템의 상태를 선택하는 적어도 하나의 제어 신호를 수신하는 스위치 시스템을 포함하는 컴퓨터 시스템을 제공하며, 상기 처리 로직 장치는 다음 조건에 따라 제어 구조 및 사용자 데이터 구조로 동작한다: (ⅰ) 처리 로직 장치는 처리 로직이 신뢰성 없는 컨텐츠를 갖거나 알려진 제어 환경 내에서 발생하지 않은 데이터 항목을 실행할 수 없는 프로그램 명령에 의해 로딩될 때 제 1 저장 장치와 결합할 수 있고; (ⅱ) 처리 로직 장치는 처리 로직이 신뢰성 없는 컨텐츠를 갖거나 알려진 제어 환경 내에서 발생하지 않은 데이터 항목을 실행할 수 있는 프로그램 명령에 의해 로딩될 때 알려진 정보를 전달하도록 제 1 저장 장치와 결합하지 않거나 제한적으로만 결합할 수 있으며; (ⅲ) 처리 로직 장치는 처리 로직이 신뢰성 없는 컨텐츠를 갖거나 알려진 제어 환경 내에서 발생하지 않은 데이터 항목을 실행할 수 없는 프로그램 명령에 의해 로딩될 때 제 2 저장 장치와 결합할 수 있고; (ⅵ) 처리 로직 장치는 처리 로직이 단지 제 1 저장 장치에서 제 2 저장 장치로 또는 제 2 저장 장치에서 제 1 저장 장치로 데이터 항목을 복사할 수 있는 프로그램 명령에 의해 로딩될 때 제 1 저장 장치 및 제 2 저장 장치와 결합할 수 있다.In another aspect, the invention provides an apparatus comprising: at least one processing logic device for executing at least one instruction; A first storage device including at least one command and storing first data and first program code comprising user data; A second storage device for storing second data; A switch for selectively and independently coupling processing logic devices to the first storage device and / or the second storage device under automatic control, and receiving at least one control signal from the processing logic device to select a state of the switch system; A computer system comprising a system is provided, wherein the processing logic device operates with a control structure and a user data structure according to the following conditions: (i) The processing logic device may have content with unreliable content or within a known control environment. Can be combined with the first storage device when loaded by a program instruction that cannot execute the data item that has not occurred; (Ii) the processing logic device does not combine with the first storage device to convey known information when the processing logic is loaded by program instructions capable of executing data items that have unreliable content or that do not occur within a known control environment. Only limited combinations can be made; (Iii) the processing logic device is capable of associating with the second storage device when the processing logic is loaded by a program instruction that has unreliable content or cannot execute a data item that does not occur within a known control environment; (Iii) the processing logic device is the first storage device when the processing logic is loaded by a program instruction capable of copying data items only from the first storage device to the second storage device or from the second storage device to the first storage device. And a second storage device.

다른 형태에서, 본 발명은 제 1 저장 장치 및 적어도 하나의 프로세서를 갖는 타입의 컴퓨터 시스템을 제공하고, 상기 컴퓨터 시스템은 적어도 하나의 저장 장치 및 프로세서 내에 개별 제어 처리 환경 및 사용자 처리 환경이 생성되고 유지되어 (1) 식별된 데이터가 그 데이터에 삽입된 명령을 실행할 수 있는 프로세서에 노출되지 않고, (2) 식별된 데이터가 제 1 저장 장치와 분리될 때 제 1 저장 장치와 다른 임시 저장 장치에서 프로세서에만 노출되는 것을 특징으로 한다.In another aspect, the present invention provides a computer system of the type having a first storage device and at least one processor, wherein the computer system creates and maintains separate control processing environments and user processing environments within the at least one storage device and processor. So that (1) the identified data is not exposed to a processor capable of executing instructions inserted into the data, and (2) the processor is stored in a temporary storage device different from the first storage device when the identified data is separated from the first storage device. It is characterized in that only exposed.

상기 본 발명의 특정 실시예들 및 최상의 모드의 설명은 예시 및 설명을 위해 제시되었다. 이들은 발명을 개시된 정확한 형태에 철저히 한정하는 것이 아니며, 상기 교지의 관점에서 많은 개조 및 변형이 명백히 가능하다. 발명의 원리 및 실제 응용을 가장 잘 설명하기 위해 실시예들이 선택되어 설명되었으며, 이로써 당업자들은 예상되는 특정 용도에 적합한 다양한 변형에 의해 발명 및 다양한 실시예 들을 최상으로 이용할 수 있다. 발명의 범위는 첨부된 청구항 및 그 등가물에 의해 정의되는 것이다.The foregoing descriptions of specific embodiments and best modes of the invention have been presented for purposes of illustration and description. They are not intended to be exhaustive or to limit the invention to the precise form disclosed, and obviously many modifications and variations are possible in light of the above teaching. Embodiments have been selected and described in order to best explain the principles and practical applications of the invention, which enable those skilled in the art to best utilize the invention and various embodiments by various modifications suitable for the particular use envisioned. It is intended that the scope of the invention be defined by the claims appended hereto and their equivalents.

Claims (30)

제 2 데이터의 실행에 의해 제 1 데이터의 오염을 방지하는 방법으로서,A method of preventing contamination of first data by execution of second data, 소스와 처리 로직 사이에 제 1 분리 장치 및 상기 처리 로직과 수신기 사이에 제 2 분리 장치를 삽입하는 단계를 포함하며, 상기 제 1 및 제 2 분리 장치들은 각각 상기 소스, 상기 수신기, 또는 상기 처리 로직으로부터 상기 분리 장치로 입력되는 임의의 명령을 실행할 수 없고, 상기 처리 로직으로의 접속 및 상기 처리 로직에 의한 상기 소스 또는 상기 수신기 측에서의 임의의 명령들의 실행을 방지할 수 없으며,Inserting a first separation device between the source and the processing logic and a second separation device between the processing logic and the receiver, wherein the first and second separation devices are respectively the source, the receiver, or the processing logic. Cannot execute any instruction input from the device to the separation device, prevent access to the processing logic and execution of any instructions on the source or receiver side by the processing logic, 상기 제 1 분리 장치를 통해 상기 소스로부터 상기 처리 로직으로 상기 제 2 데이터를 통신하는 단계;Communicating the second data from the source to the processing logic via the first separation device; 상기 처리 로직 내에서 상기 제 2 데이터를 처리하여 제 1 결과를 발생하는 단계; 및Processing the second data within the processing logic to generate a first result; And 상기 제 2 분리 장치를 통해 상기 처리 로직으로부터 상기 수신기로 상기 제 1 결과를 통신하는 단계를 포함하는 방법. Communicating the first result from the processing logic to the receiver via the second separation device. 제 1항에 있어서, 상기 제 1 및 제 2 분리 장치들은 2진 비트들 또는 다수의 2진 비트들에 복사 연산을 수행하기 때문에 상기 임의의 명령들을 실행할 수 없는 것을 특징으로 하는 방법.2. The method of claim 1 wherein the first and second separators are unable to execute the arbitrary instructions because they perform a copy operation on binary bits or a plurality of binary bits. 제 1항에 있어서, 상기 복사 연산은 상기 처리 로직 외부에서 수행되는 것을 특징으로 하는 방법.2. The method of claim 1, wherein said copy operation is performed outside said processing logic. 제 2항에 있어서, 상기 제 1 및 제 2 분리 장치들은 동일한 장치인 것을 특징으로 하는 방법.The method of claim 2 wherein the first and second separation devices are the same device. 제 2항에 있어서, 상기 제 1 및 제 2 분리 장치들은 서로 상이한 장치인 것을 특징으로 하는 방법.3. The method of claim 2 wherein the first and second separation devices are different devices from each other. 제 2 데이터의 실행에 의해 제 1 데이터의 오염을 방지하는 방법으로서,A method of preventing contamination of first data by execution of second data, 소스를 처리 로직과 수신기로부터 분리하는 단계를 포함하며, 상기 분리된 소스 및 분리된 수신기는 상기 수신기 또는 상기 처리 로직으로부터 상기 분리된 소스로 입력되는 임의의 명령을 실행할 수 없고, 상기 처리 로직으로의 접속 및 상기 처리 로직에 의한 상기 소스 또는 상기 수신기 측에서의 임의의 명령들의 실행을 방지할 수 없으며,Separating the source from the processing logic and the receiver, wherein the separated source and the separated receiver are unable to execute any instructions input to the isolated source from the receiver or the processing logic, and to the processing logic. Execution of any instructions at the source or receiver side by a connection and the processing logic, and 분리 모드에서 상기 소스로부터 상기 처리 로직으로 상기 제 2 데이터를 통신하는 단계;Communicating the second data from the source to the processing logic in a detach mode; 상기 처리 로직 내에서 상기 제 2 데이터를 처리하여 제 1 결과를 발생하는 단계; 및Processing the second data within the processing logic to generate a first result; And 상기 분리 모드에서 상기 처리 로직으로부터 상기 수신기로 상기 제 1 결과 를 통신하는 단계를 포함하는 방법. Communicating the first result from the processing logic to the receiver in the detach mode. 제 6항에 있어서, 상기 분리는 논리적인 분리인 것을 특징으로 하는 방법.7. The method of claim 6, wherein said separation is a logical separation. 제 6항에 있어서, 상기 분리는 물리적인 분리인 것을 특징으로 하는 방법.7. The method of claim 6, wherein said separation is a physical separation. 제 6항에 있어서, 상기 소스 및 수신기는 저장 위치들이고, 상기 분리는 어드레스 제어 절차를 사용하여 수행되는 것을 특징으로 하는 방법.7. The method of claim 6, wherein the source and receiver are storage locations and the separation is performed using an address control procedure. 제 9항에 있어서, 상기 어드레스 제어 절차는 특정 메모리 위치들을 숨기고 프로세스에 사용할 수 있는 다른 메모리 위치들을 실행하는 운영 시스템의 컴퓨터내에서 일정 레벨의 제어를 수행하는 것을 포함하는 것을 특징으로 하는 방법. 10. The method of claim 9, wherein the address control procedure comprises performing a level of control within a computer of an operating system that hides specific memory locations and executes other memory locations available to the process. 프로그램들과 데이터를 위한 제 1 저장 장치 및 처리 로직을 구비하며, 사용자 데이터를 포함하는 작업을 수행하기 위해 컴퓨터 프로그램 명령들을 실행하는 형태의 정보 장치로서,An information device having a first storage device and processing logic for programs and data and executing computer program instructions to perform a task comprising user data, the information device comprising: (1) 공지되지 않거나 신뢰되지 않는 컨텐츠를 가지는 사용자 데이터가 제어 처리 로직 환경에서 상기 사용자 데이터 내에 포함된 임의의 컴퓨터 프로그램 코드 명령들을 실행할 수 있는 컴퓨터 프로그램 코드로 노출되지 않고, (2) 공지되지 않거나 신뢰되지 않는 컨텐츠를 가지는 사용자 데이터가 사용자 처리 로직 환경에서 상기 제 1 저장 장치로부터 분리될 때 상기 제 1 저장 장치와는 다른 임시 저장 장치로 노출되도록 개별 제어 처리 환경들 및 사용자 처리 환경들이 생성되고 저장되는 정보 장치.(1) user data having unknown or untrusted content is not exposed to computer program code capable of executing any computer program code instructions contained within the user data in a control processing logic environment, and (2) unknown or Individual control processing environments and user processing environments are created and stored such that user data with untrusted content is exposed to a temporary storage device different from the first storage device when separated from the first storage device in a user processing logic environment. Information device. 적어도 하나의 명령을 실행하기 위한 적어도 하나의 처리 로직 장치;At least one processing logic device for executing at least one instruction; 상기 적어도 하나의 명령을 포함하는 제 1 데이터 및 제 1 프로그램 코드를 저장하고, 사용자 데이터를 포함하는 제 1 저장 장치;A first storage device storing first data and first program code including the at least one command and including user data; 제 2 데이터를 저장하기 위한 제 2 저장 장치; 및A second storage device for storing second data; And 자동 제어 하에 상기 제 1 저장 장치 및/또는 상기 제 2 저장 장치와 상기 처리 로직 장치를 선택적이고 독립적으로 결합 및 결합 해제하기 위한 스위칭 시스템을 포함하며, 상기 스위칭 시스템은 상기 스위칭 시스템의 조건을 선택하기 위해 상기 처리 로직 장치로부터 적어도 하나의 제어 신호를 수신하고;And a switching system for selectively and independently coupling and decoupling the first storage device and / or the second storage device and the processing logic device under automatic control, the switching system selecting a condition of the switching system. Receive at least one control signal from the processing logic device to: 상기 처리 로직 장치는 하기의 조건들에 따라 사용자 데이터 구성 및 제어 구성에서 동작하는데, 상기 조건들은,The processing logic device operates in a user data configuration and control configuration according to the following conditions, wherein the conditions are: (i) 상기 처리 로직에 신뢰되지 않는 컨텐츠를 가지거나 공지된 제어 환경 내에서 발생하지 않은 데이터 아이템을 실행할 수 없는 프로그램 명령이 로딩될 때, 상기 처리 로직 장치가 상기 제 1 저장 장치와 결합될 수 있고,(i) the processing logic device may be associated with the first storage device when a program instruction having untrusted content in the processing logic or a program instruction that is unable to execute a data item that does not occur within a known control environment is loaded. And (ii) 상기 처리 로직에 신뢰되지 않는 컨텐츠를 가지거나 공지된 제어 환경 내에서 발생하지 않은 데이터 아이템을 실행할 수 있는 프로그램 명령이 로딩될 때 상기 처리 로직 장치가 상기 제 1 저장 장치와 공지된 정보를 통신할 수 있도록 결 합 해제되거나 제한적으로 결합될 수 있으며,(ii) when the processing logic device is loaded with program information that has untrusted content in the processing logic or that is capable of executing a data item that does not occur within a known control environment. Can be unjoined or constrained to communicate, (iii) 상기 처리 로직에 신뢰되지 않는 컨텐츠를 가지거나 공지된 제어 환경 내에서 발생하지 않은 데이터 아이템을 실행할 수 있는 프로그램 명령이 로딩될 때 상기 처리 로직 장치가 상기 제 2 저장 장치와 결합될 수 있으며, 및(iii) the processing logic device may be coupled with the second storage device when a program instruction having content that is not trusted in the processing logic or a program instruction capable of executing a data item that does not occur within a known control environment is loaded; , And (iv) 상기 처리 로직에 상기 제 1 장치로부터 상기 제 2 장치로 또는 상기 제 2 장치로부터 상기 제 1 장치로 데이터 아이템을 복사할 수 있는 프로그램이 로딩될 때 상기 처리 로직 장치가 상기 제 1 저장 장치 및 상기 제 2 저장 장치에 결합될 수 있는 것을 포함하는 정보 장치.(iv) said processing logic device is said first storage device when said processing logic is loaded with a program capable of copying a data item from said first device to said second device or from said second device to said first device. And be coupled to the second storage device. 제 12항에 있어서, 상기 스위칭 시스템은 적어도 하기의 방식들로 상기 처리 로직 장치를 상기 제 1 저장 장치 및 상기 제 2 저장 장치와 결합 또는 결합 해제할 수 있는데, 상기 방식들은 (i) 상기 처리 로직 장치가 상기 제 1 저장 장치와만 결합되고, (ii) 상기 처리 로직 장치가 상기 제 2 저장 장치와만 결합되고, (iii)상기 처리 로직 장치가 상기 제 1 및 제 2 저장 장치와 동시에 결합되고, (iv) 상기 처리 로직 장치가 상기 제 1 저장 장치 또는 상기 제 2 저장 장치 중 어느 것과도 결합되지 않는 것을 포함하는 것을 특징으로 하는 정보 장치.13. The system of claim 12, wherein the switching system is capable of coupling or uncombining the processing logic device with the first storage device and the second storage device in at least the following manners, the schemes comprising: (i) the processing logic; A device is coupled only with the first storage device, (ii) the processing logic device is coupled only with the second storage device, and (iii) the processing logic device is simultaneously coupled with the first and second storage devices, and (iv) the processing logic device is not coupled with either the first storage device or the second storage device. 제 12항에 있어서, 상기 처리 로직 장치는 마이크로프로세서를 포함하는 것을 특징으로 하는 정보 장치.13. The information device of claim 12, wherein said processing logic device comprises a microprocessor. 제 12항에 있어서, 상기 처리 로직 장치는 마이크로 프로세서, 중앙 처리 유니트(CPU), 제어기, 마이크로-제어기, ASIC, 로직 회로, 프로그램가능한 로직 회로, 및 이들의 조합을 포함하는 처리 로직 회로들의 세트로부터 선택되는 것을 특징으로 하는 정보 장치.13. The system of claim 12 wherein the processing logic device is from a set of processing logic circuits including a microprocessor, a central processing unit (CPU), a controller, a micro-controller, an ASIC, a logic circuit, a programmable logic circuit, and a combination thereof. And an information device, wherein the information device is selected. 제 12항에 있어서, 상기 정보 장치는 컴퓨터, 노트북 컴퓨터, 개인 디지털 보조장치, 개인 데이터 정리장치, 셀룰러 전화기, 이동 전화기, 무선 수신기, 무선 송신기, GPS 수신기, 위성 전화기, 차량 탑재형 컴퓨터, 항공기 탑재형 컴퓨터, 네비게이션 장치, 가정용 장치, 인쇄 장치, 스캔 장치, 카메라, 전자 카메라, 텔레비전 수신기, 방송 제어 시스템, 전자 기기, 의료용 모니터 장치, 보안 장치, 환경 제어 시스템, 전자 장치, 네트워크 장치 및 이들의 조합을 포함하는 정보 장치들의 세트로부터 선택되는 것을 특징으로 하는 정보 장치.13. The information device of claim 12, wherein the information device is a computer, a notebook computer, a personal digital assistant, a personal data organizer, a cellular telephone, a mobile phone, a wireless receiver, a wireless transmitter, a GPS receiver, a satellite phone, a vehicle-mounted computer, an onboard aircraft. Type computer, navigation device, household device, printing device, scanning device, camera, electronic camera, television receiver, broadcast control system, electronic device, medical monitor device, security device, environmental control system, electronic device, network device and combinations thereof And an information device selected from the set of information devices. 제 12항에 있어서, 상기 제 1 데이터 저장 장치 및 제 2 데이터 저장 장치는 독립적으로 선택가능하고, 자기 회전 하드 디스크 드라이브, 자기 회전 플로피 디스크 드라이브, CD, DVD, 반도체 메모리, 고체 상태(solid state) 메모리, 화학적 메모리, 자기 메모리, 분자 메모리, 마이크로-드라이브, 플래시 메모리, 소형 플래시 카드 메모리, RAM 메모리, ROM 메모리 및 이들의 조합을 포함하는 저장 장치 세트로부터 선택되는 것을 특징으로 하는 정보 장치. 13. The apparatus of claim 12, wherein the first data storage device and the second data storage device are independently selectable, and include a magnetic rotating hard disk drive, a magnetic rotating floppy disk drive, a CD, a DVD, a semiconductor memory, a solid state. An information device selected from a set of storage devices including memory, chemical memory, magnetic memory, molecular memory, micro-drive, flash memory, small flash card memory, RAM memory, ROM memory, and combinations thereof. 제 12항에 있어서, 상기 적어도 하나의 처리 로직 장치는 다수의 처리 로직 장치들을 포함하는 것을 특징으로 하는 정보 장치.13. The information apparatus of claim 12, wherein the at least one processing logic device comprises a plurality of processing logic devices. 제 18항에 있어서, 상기 다수의 처리 로직 장치들 중 적어도 하나는 적어도 하나의 마이크로프로세서를 포함하고, 상기 적어도 하나의 명령은 운영 시스템으로부터의 다수의 컴퓨터 프로그램 코드 세그먼트들 및 애플리케이션 프로그램으로부터의 다수의 컴퓨터 프로그램 코드 세그먼트들을 포함하며, 상기 스위칭 시스템은 상기 마이크로프로세서를 상기 제 1 및 제 2 저장 장치와 선택적으로 결합 및 결합 해제하기 위해 상기 스위칭 구성을 변경하기 위한 스위치 제어 명령들을 수신하기 위해 상기 마이크로프로세서에 결합가능한 것을 특징으로 하는 정보 장치. 19. The computer-readable medium of claim 18, wherein at least one of the plurality of processing logic devices comprises at least one microprocessor, wherein the at least one instruction comprises a plurality of computer program code segments from an operating system and a plurality of applications from an application program. Computer program code segments, the switching system receiving the microprocessor to receive switch control instructions for changing the switching configuration to selectively couple and uncouple the microprocessor with the first and second storage devices. An information device, characterized in that it is coupled to. 제 19항에 있어서, 상기 다수의 처리 로직 장치들은 상기 처리 로직 장치들 중 하나를 실행하는 자동 제어 시스템에 의해 간헐적으로 순차적으로 분리되고 통신이 제한되는 것을 특징으로 하는 정보 장치.20. An information apparatus as claimed in claim 19 wherein the plurality of processing logic devices are intermittently sequentially separated and limited in communication by an automatic control system executing one of the processing logic devices. 제 19항에 있어서, 상기 제 2 저장 장치는 상기 처리 로직 장치에 접속될 때 처리 연산 동안 임시 저장 장치로서 수행하도록 구성되고, 각각의 처리가 상기 처리가 에러 조건에 의해 또는 에러 조건 없이 완료되는 경우와 상관없이 발생된 후에 자동으로 제거되며, 상기 에러 조건은 바이러스 검출 또는 다른 악성 코드 실행을 포함할 수 있는 것을 특징으로 하는 정보 장치.20. The apparatus of claim 19, wherein the second storage device is configured to perform as a temporary storage device during a processing operation when connected to the processing logic device, and wherein each processing is completed by an error condition or without an error condition. Automatically removed after being generated regardless of whether the error condition may include virus detection or other malicious code execution. 제 20항에 있어서, 상기 다수의 처리 로직 장치들 및 적어도 상기 제 1 및 제 2 저장 장치는 결정된 특성들을 가지는 계산 환경들을 발생하도록 동적으로 구성가능한 것을 특징으로 하는 정보 장치.21. The information apparatus of claim 20, wherein the plurality of processing logic devices and at least the first and second storage devices are dynamically configurable to generate computational environments having determined characteristics. 제 11항에 있어서, 상기 제 1 저장 장치는 운영 시스템 및 애플리케이션 프로그램 구성요소들을 구비한 마스터 템플릿 파일 및 사용자 데이터의 보호되는 사본을 포함하는 것을 특징으로 하는 정보 장치.12. The information device of claim 11, wherein the first storage device comprises a master template file having operating system and application program components and a protected copy of user data. 적어도 하나의 명령을 실행하기 위한 적어도 하나의 처리 로직 장치, 상기 적어도 하나의 명령을 포함하는 제 1 데이터 및 제 1 프로그램 코드를 저장하고 사용자 데이터를 포함하는 제 1 저장 장치, 및 제 2 데이터를 저장하는 제 2 저장 장치를 포함하는 형태의 정보 장치를 동작하는 방법으로서,At least one processing logic device for executing at least one instruction, a first storage device including the at least one command and a first program code, and a first storage device including user data, and a second data store A method of operating an information device of a type comprising a second storage device, 스위칭 시스템의 조건을 선택하기 위해 상기 처리 로직 장치로부터 적어도 하나의 제어 신호의 수신시 자동 제어 하에 상기 제 1 저장 장치 및/또는 상기 제 2 저장 장치와 상기 처리 로직 장치를 선택적이고 독립적으로 접속 및 접속 해제하도록 스위칭하는 단계;Selectively and independently connect and connect the first storage device and / or the second storage device and the processing logic device under automatic control upon receipt of at least one control signal from the processing logic device to select a condition of a switching system. Switching to release; 하기의 조건들에 따라 사용자 데이터 구성 및 제어 구성에서 상기 처리 로직 장치를 동작시키는 단계를 포함하는데, 상기 조건들은,Operating the processing logic device in a user data configuration and a control configuration in accordance with the following conditions, wherein the conditions include: (i) 상기 처리 로직에 신뢰되지 않는 컨텐츠를 가지거나 공지된 제어 환경 내에서 발생하지 않은 데이터 아이템을 실행할 수 없는 프로그램 명령이 로딩될 때, 상기 처리 로직 장치를 상기 제 1 저장 장치와 접속하는 것을 허용하고,(i) connecting the processing logic device with the first storage device when a program instruction having untrusted content in the processing logic or a program instruction that is unable to execute a data item that does not occur within a known control environment is loaded. Allow, (ii) 상기 처리 로직에 신뢰되지 않는 컨텐츠를 가지거나 공지된 제어 환경 내에서 발생하지 않은 데이터 아이템을 실행할 수 있는 프로그램 명령이 로딩될 때, 공지된 정보를 통신하도록 상기 처리 로직 장치를 상기 제 1 저장 장치와 접속하는 것을 허용하지 않거나 상기 처리 로직 장치를 상기 제 1 저장 장치와 접속하는 것을 제한적으로 허용하며,(ii) when the program logic is loaded with program content capable of executing data items that have untrusted content in the processing logic or that do not occur within a known control environment, the processing logic device to communicate the first known information to the first processing logic device. Disallow to connect with a storage device or restrictively connect the processing logic device with the first storage device, (iii) 상기 처리 로직에 신뢰되지 않는 컨텐츠를 가지거나 공지된 제어 환경 내에서 발생하지 않은 데이터 아이템을 실행할 수 있는 프로그램 명령이 로딩될 때, 상기 처리 로직 장치를 상기 제 2 저장 장치와 접속하는 것을 허용하고, 및(iii) connecting the processing logic device with the second storage device when a program instruction having content that is not trusted in the processing logic or capable of executing a data item that does not occur within a known control environment is loaded. Allow, and (iv) 상기 처리 로직에 상기 제 1 장치로부터 상기 제 2 장치로 또는 상기 제 2 장치로부터 상기 제 1 장치로 데이터 아이템을 복사할 수 있는 프로그램이 로딩될 때, 상기 처리 로직 장치를 상기 제 1 저장 장치 및 상기 제 2 저장 장치에 접속하는 것을 허용하는 것을 포함하는 방법.(iv) when the program is loaded into the processing logic capable of copying a data item from the first device to the second device or from the second device to the first device, storing the processing logic device in the first storage. Allowing access to the device and the second storage device. 제 24항에 있어서, 사용자 데이터를 처리하기 위해 임의의 처리 로직 장치가 상기 제 2 저장 장치를 사용한 후에 상기 제 2 저장 장치를 제거하는 단계를 더 포함하는 것을 특징으로 하는 방법.25. The method of claim 24, further comprising removing the second storage device after any processing logic device uses the second storage device to process user data. 제 24항에 있어서, 상기 정보 장치는 컴퓨터, 노트북 컴퓨터, 개인 디지털 보조장치, 개인 데이터 정리장치, 셀룰러 전화기, 이동 전화기, 무선 수신기, 무선 송신기, GPS 수신기, 위성 전화기, 차량 탑재형 컴퓨터, 항공기 탑재형 컴퓨터, 네비게이션 장치, 가정용 장치, 인쇄 장치, 스캔 장치, 카메라, 전자 카메라, 텔레비전 수신기, 방송 제어 시스템, 전자 기기, 의료용 모니터 장치, 보안 장치, 환경 제어 시스템, 전자 장치, 네트워크 장치 및 이들의 조합을 포함하는 정보 장치들의 세트로부터 선택되는 것을 특징으로 하는 방법.25. The device of claim 24, wherein the information device is a computer, a notebook computer, a personal digital assistant, a personal data organizer, a cellular telephone, a mobile phone, a wireless receiver, a wireless transmitter, a GPS receiver, a satellite phone, a vehicle-mounted computer, an onboard aircraft. Type computer, navigation device, household device, printing device, scanning device, camera, electronic camera, television receiver, broadcast control system, electronic device, medical monitor device, security device, environmental control system, electronic device, network device and combinations thereof And from a set of information devices comprising a. 제 24항에 있어서, 상기 적어도 하나의 처리 로직 장치는 다수의 처리 로직 장치들을 포함하는 것을 특징으로 하는 방법.25. The method of claim 24, wherein the at least one processing logic device comprises a plurality of processing logic devices. 제 27항에 있어서, 상기 다수의 처리 로직 장치들 중 적어도 하나는 적어도 하나의 마이크로프로세서를 포함하고, 상기 적어도 하나의 명령은 운영 시스템으로부터의 다수의 컴퓨터 프로그램 코드 세그먼트들 및 애플리케이션 프로그램으로부터의 다수의 컴퓨터 프로그램 코드 세그먼트들을 포함하며, 상기 스위칭 시스템은 상기 마이크로프로세서를 상기 제 1 및 제 2 저장 장치와 선택적으로 결합 및 결합 해제하기 위해 상기 스위칭 구성을 변경하기 위한 스위치 제어 명령들을 수신하기 위해 상기 마이크로프로세서에 결합가능한 것을 특징으로 하는 방법.28. The computer-readable medium of claim 27, wherein at least one of the plurality of processing logic devices comprises at least one microprocessor, wherein the at least one instruction is comprised of a plurality of computer program code segments from an operating system and a plurality of applications from an application program. Computer program code segments, the switching system receiving the microprocessor to receive switch control instructions for changing the switching configuration to selectively couple and uncouple the microprocessor with the first and second storage devices. And bindable to. 컴퓨터 PC 카드 및 다수의 PC 카드 버스 인터페이스 접속들의 형태를 가지는 하우징;A housing in the form of a computer PC card and a plurality of PC card bus interface connections; 상기 하우징 내에 배치된 다수의 프로세서들;A plurality of processors disposed in the housing; 상기 하우징 내에 배치되거나, 상기 하우징에 결합된 다수의 데이터 저장 장치들;A plurality of data storage devices disposed within or coupled to the housing; 적어도 하나의 사용자 데이터를 저장하기 위해 상기 다수의 데이터 저장 장치들로부터 선택된 보호되는 데이터 저장 장치 부분;A protected data storage portion selected from said plurality of data storage devices for storing at least one user data; 상기 다수의 데이터 저장 장치들과 결합되고, 데이터 저장 스위치 구성과 결합되어 상기 하우징 내에 배치된 하나 또는 그이상의 데이터 저장 장치와의 통신을 형성하기 위한 데이터 저장 장치 스위치 시스템;A data storage switch system coupled with the plurality of data storage devices, the data storage switch system coupled with a data storage switch configuration to form communication with one or more data storage devices disposed within the housing; 적어도 하나의 주변 장치와 결합되고, 다수의 특성들을 가지는 I/O 시스템 구성과 결합되어 상기 하우징 내에 배치된 상기 주변 장치와의 통신을 형성하기 위한 I/O 스위치 시스템;An I / O switch system coupled with at least one peripheral device, the I / O switch system coupled with an I / O system configuration having multiple characteristics to form communication with the peripheral device disposed within the housing; 각각 적어도 하나의 프로세서를 구비하고 상기 다수의 특성들로부터 선택된 적어도 하나의 특성에 의해 식별되는 다수의 계산 환경들을 포함하는데, 상기 계산 환경은, A plurality of computing environments each having at least one processor and identified by at least one characteristic selected from the plurality of characteristics, the computing environment comprising: 상기 데이터 저장 장치 스위치와 결합되어 상기 데이터 저장 장치 스위치 구성에 따라 적어도 하나의 데이터 저장 장치를 상기 계산 환경과 결합하는 데이터 저장 장치 스위치 통신 경로, 및A data storage switch communication path coupled with the data storage switch to combine at least one data storage device with the computing environment in accordance with the data storage switch configuration; and 상기 I/O 스위치 시스템과 결합되어 상기 I/O 스위칭 시스템 구성에 따라 상기 주변 장치를 상기 계산 환경과 결합하기 위한 I/O 스위치 통신 경로를 포함하고, 상기 계산 환경은 상기 I/O 스위치 시스템으로부터 입력을 수신하여 상 기 I/O 스위치 시스템으로 출력을 전송하는 것을 포함하는 처리 활동을 수행할 수 있고, 상기 처리 활동은 또다른 계산 환경의 처리 활동과는 독립적으로 수행되며;An I / O switch communication path coupled with the I / O switch system to couple the peripheral device with the computing environment in accordance with the I / O switching system configuration, wherein the computing environment is from the I / O switch system. Perform a processing activity comprising receiving an input and sending an output to the I / O switch system, the processing activity being performed independently of the processing activity of another computing environment; 상기 데이터 저장 장치 스위치 구성을 형성하고, 상기 I/O 스위치 시스템 구성을 형성하기 위해 상기 다수의 계산 환경들로부터 선택된 제어 계산 환경을 포함하며, 상기 데이터 저장 장치 스위치 구성은 상기 제어 계산 환경과 상기 보호되는 데이터 저장 장치 사이의 통신을 지원하며; 및And form a control computing environment selected from the plurality of computing environments to form the data storage switch configuration and to form the I / O switch system configuration, wherein the data storage switch configuration comprises the control computing environment and the protection. Support communication between data storage devices; And 상기 다수의 계산 환경들로부터 선택된 적어도 하나의 사용자 분리 계산 환경을 포함하며,At least one user separated computing environment selected from the plurality of computing environments, 상기 I/O 스위치 시스템 구성은 수신된 입력을 상기 계산 환경 중 적어도 하나로 전송하도록 구성되며, 상기 다수의 계산 환경들 중 하나 또는 그 이상에 의해 발생된 출력을 상기 주변 장치로 전송하도록 구성되는 정보 처리 장치. The I / O switch system configuration is configured to send a received input to at least one of the computing environments and to transmit the output generated by one or more of the plurality of computing environments to the peripheral device. Device. 제 29항에 있어서,The method of claim 29, 상기 다수의 프로세서들은 마이크로 프로세서, 중앙 처리 유니트(CPU), 제어기, 마이크로-제어기, ASIC, 로직 회로, 프로그램가능한 로직 회로, 및 이들의 조합을 포함하는 처리 로직 회로들의 세트로부터 독립적으로 선택되고,The plurality of processors are independently selected from a set of processing logic circuits including a microprocessor, a central processing unit (CPU), a controller, a micro-controller, an ASIC, a logic circuit, a programmable logic circuit, and a combination thereof, 상기 다수의 데이터 저장 장치는 독립적으로 선택가능하고, 자기 회전 하드 디스크 드라이브, 자기 회전 플로피 디스크 드라이브, CD, DVD, 반도체 메모리, 고체 상태(solid state) 메모리, 화학적 메모리, 자기 메모리, 분자 메모리, 마이크로-드라이브, 플래시 메모리, 소형 플래시 카드 메모리, RAM 메모리, ROM 메모리 및 이들의 조합을 포함하는 저장 장치 세트로부터 선택되는 것을 특징으로 하는 정보 처리 장치.The plurality of data storage devices are independently selectable and include a magnetic rotating hard disk drive, a magnetic rotating floppy disk drive, CD, DVD, semiconductor memory, solid state memory, chemical memory, magnetic memory, molecular memory, micro An information processing device, characterized in that it is selected from a set of storage devices comprising a drive, a flash memory, a small flash card memory, a RAM memory, a ROM memory and a combination thereof.
KR1020067016384A 2004-01-15 2005-01-14 Isolated multiplexed multi-dimensional processing in a virtual processing space having virus, spyware, and hacker protection features KR20060135757A (en)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US10/760,131 2004-01-15
US10/760,131 US7392541B2 (en) 2001-05-17 2004-01-15 Computer system architecture and method providing operating-system independent virus-, hacker-, and cyber-terror-immune processing environments
US43395504A 2004-10-13 2004-10-13
USPCT/US04/33955 2004-10-13
US11/022,290 2004-12-23
US11/022,290 US20100005531A1 (en) 2004-12-23 2004-12-23 Isolated multiplexed multi-dimensional processing in a virtual processing space having virus, spyware, and hacker protection features

Publications (1)

Publication Number Publication Date
KR20060135757A true KR20060135757A (en) 2006-12-29

Family

ID=37813506

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020067016384A KR20060135757A (en) 2004-01-15 2005-01-14 Isolated multiplexed multi-dimensional processing in a virtual processing space having virus, spyware, and hacker protection features

Country Status (1)

Country Link
KR (1) KR20060135757A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101008939B1 (en) * 2010-08-09 2011-01-18 올플러스주식회사 System for the protection of data delete base firmware and method thereof
US10135866B2 (en) 2015-11-27 2018-11-20 Hyundai Motor Company Method of preventing drive-by hacking, and apparatus and system therefor

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101008939B1 (en) * 2010-08-09 2011-01-18 올플러스주식회사 System for the protection of data delete base firmware and method thereof
US10135866B2 (en) 2015-11-27 2018-11-20 Hyundai Motor Company Method of preventing drive-by hacking, and apparatus and system therefor

Similar Documents

Publication Publication Date Title
US7392541B2 (en) Computer system architecture and method providing operating-system independent virus-, hacker-, and cyber-terror-immune processing environments
US20100005531A1 (en) Isolated multiplexed multi-dimensional processing in a virtual processing space having virus, spyware, and hacker protection features
US7536598B2 (en) Computer system capable of supporting a plurality of independent computing environments
US8166314B1 (en) Selective I/O to logical unit when encrypted, but key is not available or when encryption status is unknown
US9292222B2 (en) Computer storage device having separate read-only space and read-write space, removable media component, system management interface, and network interface
JP2007524161A (en) Separation multiplexed multidimensional processing in virtual processing space with virus, spyware and hacker protection features
US7698704B2 (en) Method for installing operating system on remote storage: flash deploy and install zone
US7519809B2 (en) Operating system-wide sandboxing via switchable user skins
JP2004508633A (en) Computer with switchable components
US20070234337A1 (en) System and method for sanitizing a computer program
MXPA06002447A (en) Personal computer internet security system.
US20080155216A1 (en) Protection and Recovery System for Automatic Disk Recovery
US20040070920A1 (en) Personal computer
WO2003048944A1 (en) Virtual data storage (vds) system
WO2002088958A1 (en) Apparatus and method for protecting a computer system against computer viruses and unauthorized access
US9182982B1 (en) Techniques for creating an encrypted virtual hard disk
JP2008535042A5 (en)
JP2001318797A (en) Automatic data processor
WO2014091535A1 (en) Computer system and encryption method of recording unit
KR20060135757A (en) Isolated multiplexed multi-dimensional processing in a virtual processing space having virus, spyware, and hacker protection features
US11461490B1 (en) Systems, methods, and devices for conditionally allowing processes to alter data on a storage device
EP1193586A2 (en) Security system for data processing applications
CN113302598A (en) Electronic data management device, electronic data management system, program used for the same, and recording medium
JP2005535003A (en) A computer system capable of supporting multiple independent computing environments
WO2006087695A2 (en) Protection and recovery system for automatic disk drive recovery

Legal Events

Date Code Title Description
WITN Withdrawal due to no request for examination