Log in

No account? Create an account
Чему учат в школе - Юрий Панчул [entries|archive|friends|userinfo]
Money can buy bandwidth. Latency requires bribing God.

[ website | My Website ]
[ userinfo | livejournal userinfo ]
[ archive | journal archive ]

Чему учат в школе [Aug. 16th, 2014|12:53 am]
Yuri Panchul
Сегодня я случайно увидел, чему учили в шестом классе моего старшего сына:

А еще сегодня я составил список из 100 пунктов, что должны знать студенты, которых мы четыре месяца учили по субботам на пару с Тимуром Палташевым из AMD в одном из местных университетов. Студенты в основном из Индии и Китая. Курс "Введение в SoC".

Причина, по которым я этим занимаюсь - я даю рекомендации по образовательным программам нашему менеджменту в Imagination Technologies, посему я должен знать, что за зверь является студент.

По этому списку я буду еще готовить список вопросов к экзамену. Предложения и замечания приветствуются.

Final exam topics:


1. Relative sizes of the industries:

Electronic industry ~ $2T
Semiconductor / chip making industry ~ $300B
Electronic Design Automation industry ~ $8B
Semiconductor Intellectual Property (SIP) ~ $4B

2. RTL (Register Transfer Level) flow:

System architecture
Coding RTL
Place and Route

3. The difference between processor architecture and microarchitecture

Binary numbers:

4. Binary -> decimal conversion
5. Decimal -> binary conversion

6. Two's complement

Min negative, max positive
Method: invert the bits and add 1

7. Logical operations: and, or, xor
8. Arithmetic operations: +, -, *, /
9. Increasing bit width: sign-extension versus zero-extension

The concept of gate and combinational logic. Combinational building blocks. Combinational timing.

9. Gates: and, or, buffer, not, xor, nand, nor, xnor, multiple input gates
10. Multiplexers
11. [Encoders and decoders]
12. Adders: half-adder, full adder, ripple-carry adder
13. Shifters: logical and arithmetic shifters
14. Multipliers and dividers: combinational are not practical for many applications

Combinational timing:

15. Propagation delay and contamination delay
16. Critical (long) path and short path

Sequential logic, sequential building blocks and finite state machines (FSM):

17: SR Latch, how it stores the state
18. D Latch and D Flip-Flop: level-sensitive versus edge-sensitive. D Latch unwanted: bad for timing analysis.
19. D Flip-Flop reset: synchronous reset versus asynchronous reset
20. Sequential building block: counter
21. Sequential building block: shift register

22. The concept of state machine:

Inputs and outputs
Combinational logic and state register
Next state, current state

23. Moore FSM versus Mealy FSM
24. FSM State Transition Diagram
25. FSM Timing Diagram: Waveforms

Sequential logic timing:

26. The problem: Data should be stable when sampled in D Flip-Flop. Clock frequency should allow enough time for combinational logic to propagate.
27. Clock frequency and clock period
28. D Flip-flop setup time, hold time and aperture time
29. Propagation delay and contamination delay for clock-to-q
30. Dynamic discipline: minimum and maximum delay. Constraints and timing analysis.
31. Clock skew, worst case analysis
32. [Asynchronous inputs, metastability, synchronization using two D Flip-Flops]


33. Hardware Description Languages (HDLs), their difference from programming languages
34. Verilog and VHDL. SystemVerilog
35. Simulation and synthesis. Synthesizable subset of Verilog, SystemVerilog and VHDL.
36. The concept of Verilog module, inputs and outputs
37. Main types: reg and wire in Verilog, reg/wire/logic in SystemVerilog. Variable width.
38. Module instantiation and hierarchy of modules
39. Combinational logic using simple “assign” statements
40. Bitwise logical operators: ~, &, |, ^. SystemVerilog: ~&, ~^, ~|
41. Reduction operators. Using xor (“^”) to compute parity.
42. Arithmetic operations: +, -, *, /, %
43. Arithmetic and logical shifts: <<, >>, <<<, >>>
44. [Conditional operator ?:]
45. [Bit manipulations: slices, concatenations and repetitions]
46. “always” block and its sensitivity list. always @*
47. Combinational “always” block (”always_comb” in SystemVerilog)
48. Control structures inside “always” blocks: “if”, “case” and “for”. Avoiding D latches.
49. Sequential “always” block (”always_ff” in SystemVerilog)
50. Blocking (“=”) and non-blocking (“<=”) assignments
51. Verilog race conditions. Importance of the correct methodology to avoid race conditions: blocking in combinational “always” block, non-blocking in sequential “always” blocks
52. Synthesizable code rule: a signal may be assigned only in one “always” block or “assign” statement
53. Coding Finite State Machines (FSMs): “always” block for the next state logic and “always” block for the state register
54. Testbenches: purpose, instantiating device under test (DUT), testbenches with self-checking. Simulation only, not synthesizable.

Processor, the architectural view

55. The difference between architecture and microarchitecture
Architecture: Programmer’s view of computer (instruction set, software visible registers)

Microarchitecture: Hardware engineer’s view of computer (pipeline structure, hardware visible registers)

56. Processor architectures: Intel/AMD x86, ARM, MIPS
57. MIPS: Instruction encoding and decoding
57. Arithmetic instructions: addu, addiu, subu, mul
58. Bitwise logical instructions: and, or, xor, nor, andi, ori, xori
59. Shifts: sll, sllv, sra, srav, srl, srlv
60. The difference between arithmetic and logical shifts
61. Using arithmetic shifts for signed division with power of 2 operand
62. Loading constants: synthetic operations li and la, operation lui (load upper immediate)
63. “Set if” operations: slt, slti, sltu, sltiu
64. Loads and stores: lb, lbu, lh, lhu, lw, sb, sh, sw
65. Conditional branches: beq, bgez, bgtz, bne, bltz, blez
67. Absolute branches: j, jr
68. Function/subroutine calls: jal, jalr
69. Concept of stack and stack pointers, storing return address and registers in stack
70. How to translate C construct “if-else” into MIPS assembly language?
71. How to translate C construct “while” loop into MIPS assembly language?
72. How to translate C construct “for” loop into MIPS assembly language?
73. How to translate C function call into MIPS assembly language?
74. The concept of exceptions and interrupts. Changing control during exception.
75. The concept of Instruction set simulator (ISS). MARS simulator as an example

Processor, microarchitectural view

76. Processor performance definitions:

Execution Time = (#instructions) (cycles / instruction) (seconds / cycle)
CPI : Cycles Per Instruction
Clock period: seconds per cycle
Clock frequency: 1 / clock period. Unit: Hz
IPC: Instructions Per Cycle

77. Building single cycle processor:

Program counter
Register file: array of flip-flops and muxes
Memory: viewed as black box: address and output

78. The concept of ALU - Arithmetic and Logic Unit

79. Processing stages in single-cycle processor:

Fetch instruction
Read source operands from register file
Compute memory address using ALU
Memory read
Determine address of next instruction

80. The concept of Control Unit: getting opcode from instruction, generating signals for multiplexors

81. Problem with single-cycle design: critical path is too long. A solution: multi-cycle design.

Adding registers that keep values between clock cyles
Increased clock speed
Use finite state machine in Control Unit to generate multiplexer select and register enables

82. The concept of pipelining.

83. Stages of pipelined MIPS implementation: Fetch, Decode, Execute, Memory, Writeback

84. [The concept of data hazard: when instruction depends on the result of previous instruction]

85. Advanced microarchitecture solutions:

Deep (long) pipelines - limited by frequent pipeline flushes during jumps

Branch prediction - improves performance for deep pipelines

Superscalar - multiple pipelines, limited by instruction dependencies

Out of order - improves superscalar

Vector / SIMD processors - one instruction operates with arrays of data (SIMD = Single Instruction Multiple Data) - requires special programming

Multiprocessors - limited by memory sharing

Memory hierarchy:

86. The concept of addressable memory: address, write data, write enable signal, read data

87. Memory types

Dynamic random access memory - DRAM
Static random access memory - SRAM
Read only memory - ROM

88. Processor-memory gap -> need for caches

89. The concept of cache: exploiting temporal locality and spacial locality

90. The structure of cache: lines (blocks), indices, tags, sets

91. Types of cache: direct-mapped, N-way set associative, fully associative

92. Cache performance measurement: hits and misses; miss rate
93. Cache hierarchy - L1, L2, L3 …

94. Cache coherence for multi-core systems. Snooping protocols (MESI), directory-based protocols.

Practical skills from lab exercises:

95. The structure of a breadboard for experimentation

96. How to choose a resistor for LED

96. The need for pullup and pulldown resistors. How to connect a button to an input into FPGA or MCU

97. The need for button de-bouncing. Methods for debouncing when used with FPGA

98. The definition and structure of Field Programmable Gate Arrays - FPGA (cells, logical elements)


99. Other SoC components - graphical processors (GPU), video processors (VPU), radio (RPU)

100. Bus protocols for component connectivity:

On-chip buses: AMBA AHB-Lite, AXI, OCP
Off-chip interfaces: SPI, UART, I2C, Ethernet, USB etc

Как вы думаете, что важнее для успешной личной жизни в Siliconовой Долине - то, чему моего сына учат в школе, или то, чему я учу студентов в NPU?

Конечно первое. Чтобы обольстить женщину, нужно знать, что такое "клитор"
Ерунда! Чтобы обольстить женщину, нужна высокая зарплата, что достигается изучением когерентных кэшей
Не согласен. Если изучать секс с шестого класса, можно сооблазнить разбогатевшую от рекламы Радулову и жить на ее доходы в ее квартире
В Украину въезжает колонна из ракет "Сотона", скоро будет ядерная война и не до личной жизни!
Из-за бугра плюете?

Page 1 of 2
<<[1] [2] >>
[User Picture]From: alexlotov
2014-08-16 07:56 am (UTC)
Учат физиологии грубого животного, а не Осознанию совершенного. Вектор зомбирования населения понятен.
(Reply) (Thread)
[User Picture]From: panchul
2014-08-16 08:07 am (UTC)
Надо "Воскресенье" Толстого читать, как нам в 8 классе давали
(Reply) (Parent) (Thread) (Expand)
(Deleted comment)
(Deleted comment)
(Deleted comment)
[User Picture]From: livejournal
2014-08-16 08:01 am (UTC)

Владение половым словарем в Америке.. Школа. Дети.. Можэ

User jalynski referenced to your post from Владение половым словарем в Америке.. Школа. Дети.. Можэ воно так и нам надо? saying: [...] А то всё х..й, да п..да.. Оригинал взят у в Чему учат в школе [...]
(Reply) (Thread)
[User Picture]From: jalynski
2014-08-16 08:08 am (UTC)
Ну, тов. Панчул несколько преувеличивает незнание совшкольников времен Андропова и Черненко насчет фаллопиевых труб..
Поглядел бы журнал "Здоровье" год, этак, за 1965-й..
(Reply) (Thread)
[User Picture]From: panchul
2014-08-16 08:11 am (UTC)
Это я понимаю, сам все изучил в 4 или 5 классе (1980-1982) по стибренной у отца книге. Советской кстати. Там было и про извращения, в которые включали гомосексуализм, зоофилию, копрофагию и скатолагнию.
(Reply) (Parent) (Thread) (Expand)
[User Picture]From: lrlay777
2014-08-16 08:09 am (UTC)
В подобных тестах я ничего предосудительного не вижу, в советских школах тоже проходили анатомию. Человек должен знать, как он устроен. Другое дело , я не знаю, какому возрасту в США соответствует шестой класс. Может рановато?
Ну а для решение демографических проблем знать это не обязательно) Практика показывает, что активнее всего размножаются народы, которые этих премудростей в школе не изучают.)
Хотя на счет Радуловой не уверен)
(Reply) (Thread)
[User Picture]From: panchul
2014-08-16 08:13 am (UTC)
*** я не знаю, какому возрасту в США соответствует шестой класс ***

11 лет

*** в советских школах тоже проходили анатомию ***

Половые органы - в 10 классе (16 лет). Хотя понятно, что все были в курсе еще в 3-5 классах.
(Reply) (Parent) (Thread) (Expand)
[User Picture]From: archaicos
2014-08-16 08:27 am (UTC)

к тролю троль пришёл и спросил тролёнок

А вдруг обольщать придётся мужчину? Или женщине? Наши края (СФ) богаты на LGBT. Даёшь более репрезентативную выборку! :)

Как можно изучать секс без практики? Вот, про программирование можно прочитать и послушать и потом программу можно написать и исполнить, а как же с сексом в 11 лет? Только прочитать и послушать? А навыки где?
(Reply) (Thread)
From: Michael Sadovsky
2014-08-16 08:35 am (UTC)

Как можно изучать секс без практики?

Даёшь домашние задания по соблазнению лиц противоположного пола!

И лабораторные по успешному сексуальному поведению...
(Reply) (Parent) (Thread) (Expand)
From: p_o_l
2014-08-16 09:04 am (UTC)
А что это там за кружевное бельё на первой фотографии?
(Reply) (Thread)
[User Picture]From: panchul
2014-08-16 01:45 pm (UTC)
Это моя мама прислала из Украины вышиванку в целях троллирования. Вместе с жовто-блакитними флагами и жовто-блакитними трусами. У нее ухудшение рассудительности, свойственное пожилым людям, совпало с Майданом.
(Reply) (Parent) (Thread) (Expand)
[User Picture]From: abu_daud
2014-08-16 09:32 am (UTC)
План курса хороший, сам бы прослушал с удовольствием.
(Reply) (Thread)
[User Picture]From: panchul
2014-08-16 01:57 pm (UTC)
Теперь мне нужно за неделю придумать по всему вопросы, причем в пяти вариантах, чтобы не списывали.
(Reply) (Parent) (Thread) (Expand)
[User Picture]From: sergegers1
2014-08-16 10:49 am (UTC)
Вы бы тоже могли в курс вставить что-нибудь про клитор, где-то между пайплайнами и предсказанием переходов.
(Reply) (Thread)
[User Picture]From: archaicos
2014-08-16 10:52 am (UTC)
Можно переименовать вход для запросов прерывания.
(Reply) (Parent) (Thread)
[User Picture]From: archaicos
2014-08-16 10:50 am (UTC)
Кстати, а к какой категории бы стоило отнести выражение grow a pair? b?
(Reply) (Thread)
[User Picture]From: norka_0
2014-08-16 01:06 pm (UTC)
Зачем мужчине высокая зарплата если он не знает где клитор?
(Reply) (Thread)
[User Picture]From: panchul
2014-08-16 01:41 pm (UTC)
Вы не представляете, насколько часто я задавал себе этот вопрос в молодости.

Вообще в Silicon Valley масса молодых девственников (особенно из Индии и Китая) с зарплатами, которые в какой-нибудь провинциальной Оклахоме вызывали бы у женщин немедленное желание к созданию семейного очага и размножению. Прпвда тллько если зарпрлатоносец - американец, который с шестого класса знает, где у женщины клитор.

Этл главная Siliconовая трагедия имхо.
(Reply) (Parent) (Thread) (Expand)
[User Picture]From: Александр Смекалов
2014-08-16 02:02 pm (UTC)
А дочку чему в школе учат?

Edited at 2014-08-16 02:04 pm (UTC)
(Reply) (Thread)
[User Picture]From: spamsink
2014-08-16 04:04 pm (UTC)
Правильный ответ на полл - смотря что считать для себя "личной жизнью" и успехом в ней.

Ответ на вопрос 22 на фото, строго говоря, неверный.

Список пунктов сгодится в общих чертах. В FSM я бы еще разнообразные state encodings бы упомянул.
(Reply) (Thread)
[User Picture]From: archaicos
2014-08-16 08:26 pm (UTC)
Вроде как 14 и 18 имеются у обоих полов.
(Reply) (Parent) (Thread) (Expand)
[User Picture]From: h2010
2014-08-16 11:49 pm (UTC)
Вспоминаю, как нас учили "Микропроцессорным системам" на кафедре вычислительных машин, я закончил курс в 2005 году. В основном все термины были на русском, и было сложно сопоставить их с материалами из внешнего мира. На экзаменах было что-то около 800 комбинаций по организации кэш-памяти. В основном единственное, чему мы научлись на этом курсе - это как нужно сдавать этот курс.
Самое первое, что я бы изменил в такой системе - я бы исключил из программы все материалы, связанные с запоминанием и зубрежкой. Какой двоичный код у этой комманды? Как расшифровывается "ЛПДПШП-3"? В каком году и кто? Как это называется? - в топку. Я бы оставил только материалы, направленные на понимание: как это работает? как это сделать? какова логика у этого? напишите программу? придумайте решение? А в остальном может помочь поисковая система.
(Reply) (Thread)
[User Picture]From: panchul
2014-08-17 12:16 am (UTC)
Зубрежка нужна, чтобы приступить к практическим занятиям и делать их глубоко, а не ковырянием и хэком. Потом на основе практических занятий набивается рука и вырабатывается интуиция. На основе интуиции появляется возможность оперировать более высокоуровневыми абстракциями, что помогает в творчестве.

Творчество, имея лишь общее понимание - это путь к неглубоким результатам, которые не имеют ценности на рынке.

При этом зубрежка без переходя к практическим занятиям - действительно нонсенс. Учить много комбинаций использования кэш-памяти для человека, который никогда не будет проектировать, верифицировать или моделировать производительность кэшей - это действительно малополезно.

Вопросы "на понимание" конечно архиважны в экзамене, но зубрежка областей, в которых человек будет работать - это имхо нужно.
(Reply) (Parent) (Thread) (Expand)
[User Picture]From: shadow_ru
2014-08-17 08:19 am (UTC)
Юрий, а Вы не могли бы прокомментировать инициативу по созданию полностью открытой архитектуры RISC-V? Там известные люди участвуют вроде Паттерсона (автора учебника).

(Reply) (Thread)
[User Picture]From: panchul
2014-08-18 01:39 am (UTC)
Они столкнуться с той-же проблемой, что и авторы еще 30 risc архитектур - трудности раскрутки с нуля.

Кроме этого, наш менеджмент сейчас решает вопрос о специальных условиях использования наших low-end MIPS ядер в университетах, и если вопрос будет решен так как я думаю, то это несколько подкосит инициативы типа risc5, причем очень скоро.

В любом случае - пусть цветут все цветы!
(Reply) (Parent) (Thread)
[User Picture]From: Roman Gran
2014-08-17 02:03 pm (UTC)
Since when bladder is a reproductive organ ?
(Reply) (Thread)
Page 1 of 2
<<[1] [2] >>