17.11.2012 Views

Scios Instruction Set

Scios Instruction Set

Scios Instruction Set

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

SciOS<br />

Family Tablet<br />

SPC Specifications<br />

Publication # 31338<br />

Revision: 2.01<br />

Issue Date: March 2012


© 2011 – 2012 Sciteek, Inc. All rights reserved.<br />

The contents of this document are provided in connection with Sciteek, Inc.<br />

(“SciOS”) products. Sciteek makes no representations or warranties with<br />

respect to the accuracy or completeness of the contents of this publication<br />

and reserves the right to make changes to specifications and product<br />

descriptions at any time without notice. The information contained herein<br />

may be of a preliminary or advance nature and is subject to change without<br />

notice. No license, whether express, implied, arising by estoppel or<br />

otherwise, to any intellectual property rights is granted by this<br />

publication. Except as set forth in Sciteek’s Standard Terms and Conditions<br />

of Sale, Sciteek assumes no liability whatsoever, and disclaims any express<br />

or implied warranty, relating to its products including, but not limited<br />

to, the implied warranty of merchantability, fitness for a particular<br />

purpose, or infringement of any intellectual property right. Sciteek’s<br />

products are not designed, intended, authorized or warranted for use as<br />

components in systems intended for surgical implant into the body, or in<br />

other applications intended to support or sustain life, or in any other<br />

application in which the failure of Sciteek’s product could create a<br />

situation where personal injury, death, or severe property or environmental<br />

damage may occur. Sciteek reserves the right to discontinue or make changes<br />

to its products at any time without notice.<br />

FOR SALES USE ONLY<br />

Trademarks SciOS, SciPad are trademark of Sciteek, Inc.


INTRODUCTION TO SPC<br />

SPC (StrengthPC) is the latest architecture family developped by<br />

SciTeek labs. After eight years of intensive development and<br />

failed experiments, Sciteek engineers are proud to announce the<br />

release of five successive processors that finally bring together<br />

low power consumption and extremely high performances.<br />

The first processor will soon be released under the brand name<br />

Palladium. It will embed four SPC cores with an incredible CPU<br />

clock frequency of 3.4GHz, powering desktop applications as well<br />

as latest multimedia and gaming programs.<br />

QUICK REFERENCE<br />

Architecture family SPC – StrengthPC<br />

Architecture type Register based<br />

Registers 8 x 16bits registers<br />

Direct memory addressing 16bits - immediate or register based<br />

Direct addressable memory 64kB<br />

Indirect addressing type XPAE – eXtreme PAE<br />

XPAE addressing bits 42bits<br />

Extended addressable<br />

memory<br />

FOR SALES USE ONLY<br />

64GB<br />

FSB speed 1GHz-2GHz<br />

Minimum ft. size 66nm<br />

Product code 01337<br />

Supported sockets SciTeek SocketX<br />

L1 cache size 1MiB<br />

L2 cache size 16MiB<br />

L3 cache size 64MiB<br />

Idle power consumption 4.2W<br />

Charge power consumption 13.37W<br />

Endianness Little endian<br />

<strong>Instruction</strong> set SPC<br />

Notice : first released processors, including Palladium series will<br />

not implement XPAE features.


SPC MEMORY MANAGEMENT<br />

Direct access memory management only is detailed in the<br />

current section. For XPAE specifications, please refer to future<br />

detailed architecture documentation.<br />

64kB of memory are available for direct access. First 32kB are<br />

reserved for local stack, next 32kB are dedicated to binary<br />

code sections. Maximum binary size is 0xfffe.<br />

Stack is up-down-addressed while code is read in the bottomtop<br />

order. Operating system designers are kindly asked to<br />

provide program arguments at the very top of the stack,<br />

according to IA32 usual recommandations.<br />

Have a look at the memory map for graphical representation of<br />

SPC memory management.<br />

FOR SALES USE ONLY<br />

0x0000<br />

0x7fff<br />

0x8000<br />

0xffff<br />

Stack<br />

Program<br />

arguments<br />

Code<br />

XPAE (outer)<br />

space


SPC INSTRUCTION SET<br />

The following specifications include references to :<br />

• the instruction opcode<br />

• 8bits flag<br />

• 8bits register id<br />

• or 16bits memory offset index<br />

FOR SALES USE ONLY<br />

REG_REG 0x00<br />

REG_DIRECT8 0x01<br />

REG_DIRECT16 0x02<br />

REG 0x03<br />

DIRECT16 0x04<br />

DIRECT8 0x05<br />

REGINDIRECT_REG 0x06<br />

REGINDIRECT_DIRECT8 0x07<br />

REGINDIRECT_DIRECT16 0x08<br />

REGINDIRECT_REGINDIRECT 0x09<br />

REG_REGINDIRECT 0x0a<br />

Available flags<br />

REG0 to REG7 0x00 to 0x07<br />

REG_SP 0x08<br />

REG_BP 0x09<br />

Available registers


ADD<br />

General syntax : <br />

Opcode : 0x06<br />

Flag : REG_REG, REG_DIRECT8, REG_DIRECT16<br />

Operation : accumulates over the first register<br />

AND<br />

General syntax : <br />

Opcode : 0x0d<br />

Flag : REG_REG, REG_DIRECT8, REG_DIRECT16<br />

Operation : logical and, output in the first register<br />

CALL<br />

General syntax : <br />

Opcode : 0x19<br />

Flag : REG, DIRECT16<br />

Operation : routine call, return address is pushed<br />

CMP<br />

General syntax : <br />

Opcode : 0x18<br />

Flag : REG_REG, REG_DIRECT8, REG_DIRECT16<br />

Operation : 8bits or 16bits comparison<br />

DEC<br />

General syntax : <br />

Opcode : 0x0b<br />

Flag : no flag<br />

Operation : register decrementing<br />

FOR SALES USE ONLY


DIV<br />

General syntax : <br />

Opcode : 0x09<br />

Flag : REG_REG, REG_DIRECT8, REG_DIRECT16<br />

Operation : divides, output in the first register<br />

INC<br />

General syntax : <br />

Opcode : 0x0a<br />

Flag : no flag<br />

Operation : register incrementation<br />

JMPL<br />

General syntax : <br />

Opcode : 0x1b<br />

Flag : no flag<br />

Operation : jump to long address<br />

JMPS<br />

General syntax : <br />

Opcode : 0x16<br />

Flag : no flag<br />

Operation : jump to short address<br />

JNZ<br />

General syntax : <br />

Opcode : 0x11<br />

Flag : no flag<br />

Operation : jump if non zero<br />

FOR SALES USE ONLY


JZ<br />

General syntax : <br />

Opcode : 0x10<br />

Flag : no flag<br />

Operation : jump if zero<br />

JA<br />

General syntax : <br />

Opcode : 0x1e<br />

Flag : no flag<br />

Operation : jump if above<br />

JB<br />

General syntax : <br />

Opcode : 0x1f<br />

Flag : no flag<br />

Operation : jump if below<br />

MOV<br />

General syntax : <br />

<br />

Opcode : 0x04<br />

Flag : any flag<br />

Operation : copy from/to memory and registers<br />

MUL<br />

General syntax : <br />

Opcode : 0x08<br />

Flag : REG_REG, REG_DIRECT8, REG_DIRECT16<br />

Operation : multiplies, output in the first register<br />

FOR SALES USE ONLY


NOP<br />

General syntax : <br />

Opcode : 0x02<br />

Flag : no flag<br />

Operation : nop<br />

NOT<br />

General syntax : <br />

Opcode : 0x0f<br />

Flag : no flag<br />

Operation : negation of a register<br />

OR<br />

General syntax : <br />

Opcode : 0x0c<br />

Flag : REG_REG, REG_DIRECT8, REG_DIRECT16<br />

Operation : logical or, output in the first register<br />

POP<br />

General syntax : <br />

Opcode : 0x03<br />

Flag : no flag<br />

Operation : 16bits pop from stack to register<br />

PUSH<br />

General syntax : <br />

Opcode : 0x01<br />

Flag : REG, DIRECT8, DIRECT16<br />

Operation : push from register/memory to stack<br />

FOR SALES USE ONLY


RET<br />

General syntax : <br />

Opcode : 0x1a<br />

Flag : no flag<br />

Operation : routine return<br />

SUB<br />

General syntax : <br />

Opcode : 0x07<br />

Flag : REG_REG, REG_DIRECT8, REG_DIRECT16<br />

Operation : substraction, output in the first register<br />

SYSCALL<br />

General syntax : <br />

Opcode : 0x30<br />

Flag : no flag<br />

Operation : system call, syscall number in REG0, arguments in<br />

REG1 to REG4.<br />

TEST<br />

General syntax : <br />

Opcode : 0x17<br />

Flag : no flag<br />

Operation :<br />

XCHG<br />

General syntax : <br />

Opcode : 0x1d<br />

Flag : no flag<br />

Operation : exchange registers<br />

FOR SALES USE ONLY


XOR<br />

General syntax : <br />

Opcode : 0x0e<br />

Flag : REG_REG, REG_DIRECT8, REG_DIRECT16<br />

Operation : logical xor, output in the first register<br />

SciOS Syscalls<br />

The following system calls are available to SciOS users. Other<br />

operating system implentation may match those signatures.<br />

Please notice that system calls signature is similar to Linux<br />

system calls.<br />

sys_open 0x02 REG1, REG2, REG3<br />

sys_exit 0x01 REG1<br />

sys_read 0x03 REG1, REG2, REG3<br />

sys_write 0x04 REG1, REG2, REG3<br />

sys_close 0x05 REG1<br />

sys_setuid 0x06 REG1<br />

sys_setgid 0x07 REG1<br />

sys_dup2 0x08 REG1, REG2<br />

sys_send 0x09 REG1, REG2, REG3, REG4<br />

sys_recv 0x0a REG1, REG2, REG3, REG4<br />

sys_socket 0x0b REG1, REG2, REG3<br />

sys_listen 0x0c REG1, REG2<br />

sys_bind 0x0d REG1 (socket), REG2 (port)<br />

sys_accept 0x0e REG1 (socket)<br />

sys_chdir 0x0f REG1<br />

sys_chmod 0x10 REG1, REG2<br />

sys_lseek 0x11 REG1, REG2, REG3<br />

sys_getpid 0x12<br />

sys_getuid 0x13<br />

sys_pause 0x14<br />

Available syscalls<br />

FOR SALES USE ONLY

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!