US E IMPROV E EVANGELIZ E SPARC Александр Трубин Sun Campus Ambassador, УрГУ
Jun 22, 2015
USE
IMPROVE
EVANGELIZE
SPARC
Александр ТрубинSun Campus Ambassador, УрГУ
SPARC
SPARC – Scalable Processor ARChitecture Открытая архитектура
система команд – стандарт IEEE 1754-1994 доступна для лицензирования некоммерческая организация SPARC
International, Inc. (1989)
лицензия - 99$ SPARC V8 – 32bit SPARC V9 – 64bit
SPARC: Возможности
RISC архитектура 128 регистров общего назначения FPU
32 single-precision (32-bit) f[0], f[1], ... , f[31] 32 double-precision (64-bit) f[0], f[2], ... , f[62] 16 quad-precision (128-bit) f[0], f[4], ... , f[60]
масштабируемость core instruction set количество реализованых register windows
big-endian (SPARC V9 – both)
SPARC: register window
8 глобальных: %g0 – %g7 register window – 24 регистра
%o0 - %o5 – arguments out %sp, %o7 – stack pointer, sub return addr %l1 - %l7 – internal $i0 - %i5 – arguments in %fp, %i7 – frame pointer, func return address
cwp ...
SPARC: register window
Hello, world !.text
.align 4
.global start
start:
mov 0,%o0 ! stdout
set string,%o1 ! address of string
mov 14,%o2 ! number of bytes in string
mov 4,%g1 ! write(2) system call - write(0, string, 14);
ta 0 ! get the kernel to do syscall #4
mov 0,%o0 ! exit code 0
mov 1,%g1 ! _exit(2) system call - exit(0);
ta 0 ! get the kernel to do syscall #1
.align 4
string:
.ascii "Hello, World!\n"
Register layout for a NetBSD/SunOS system call:%g1 - syscall number (See /usr/include/sys/syscall.h)%o0 - 1st argument%o1 - 2nd argument (if there that syscall takes a 2nd arg)%o2 - 3rd argument (if there that syscall takes a 3rd arg)
OpenSPARC: История
MAJC (Microprocessor Architecture for Java Computing)
Stanford Hydra Single-Chip Multiprocessor Kunle Olukotun
Afara Websystems 4xMIPS 10000
UltraSPARC T1 OpenSPARC ( декбарь 2005 )
VHDL & Verilog
VHDL (Very high speed integrated circuits Hardware Description Language) — язык описания аппаратуры высокоскоростных интегральных схем. (является базовым языком при разработке аппаратуры современных вычислительных систем)
Verilog: Hello World
module main; initial begin $display("Hello world!"); $finish; endendmodule
Verilog - это язык описания аппаратуры, используемый для описания и моделирования электронных систем.
Design flow using Verilog
OpenSPARC
использовать as-is добавлять/убирать ядрарасширять набор
инструкцийизменять FPUдобавлять сетевые
интерфейсыредактировать интерфейс
ввода/вывода...
Simply RISC — одноядерный процессорПортирование Linux (6 недель)RAMP project
http://ramp.eecs.berkeley.edu...
Что можно делать?
Что делают?
OpenSPARC pipeline
ALU + shift,multiply,divide, thread-select stage, cryptogtaphic co-processor
SPARC v9 соответствие
Уровень 1 (*) Реализация корректно интерпретирует все
непривилегированные инструкции (включая прямое исполнение, имитацию или эмуляцию). Этот уровень корректно работает с приложениями пользователя и входит в архитектуру SPARC-V9 ABI
Уровень 2 Реализация корректно интерпретирует все
привилегированные и непривилегированные инструкции, а так же включает в себя всё необходимое аппаратное, програмное обеспечение и програмно-аппаратные средства(firmware) для полной и корректной реализации.
OpenSPARC: FPGA
OpenSPARC сообщества
Links
http://www.opensparc.net http://www.opensparc.net/projects/ - проекты http://www.sun.com/processors/opensparc/ остальное: http://blogs.sun.com/atr
USE
IMPROVE
EVANGELIZE
Спасибо!
Александр ТрубинSun Campus Ambassador, УрГУ
[email protected]://blogs.sun.com/atr
“open” artwork and icons by chandan: http://blogs.sun.com/chandan