увлекаюсь проектированием кастомных цпу. Начинал с игры тьюринг комплит, на данный момент перешёл на верилог и проектирую под Tang Nano 9k. Так как всё это время мне не с кем было поделиться или обсудить то, что я делаю, я ищу единомышленников.
мой дискорд: vihuhol42_05347
мой дискорд: vihuhol42_05347
>>2434 (OP)
Кстати видал я книжку англоязычную про это. Конечно по ней AMD Ryzen 9 не спроектируешь, но хоть что-то.
А ещё вроде бы архитектура ARM процессоров открыта и документация и книжки имеются, разрабатывай сколько хочешь, под ARM процессорами смартфоны работают и вообще Андроиды всякие.
Кстати видал я книжку англоязычную про это. Конечно по ней AMD Ryzen 9 не спроектируешь, но хоть что-то.
А ещё вроде бы архитектура ARM процессоров открыта и документация и книжки имеются, разрабатывай сколько хочешь, под ARM процессорами смартфоны работают и вообще Андроиды всякие.
>>2434 (OP)
discord - разногласие, разлад, раздор
неблагозвучно, лучше бы джаббером пользовался.
>мой дискорд: vihuhol42_05347
discord - разногласие, разлад, раздор
неблагозвучно, лучше бы джаббером пользовался.
>>2434 (OP)
а у меня в электронной читалке книжек которой я каждые божьи сутки пользуюсь, какой то Линукс или Юникс и процессор вообще RockChip RK2818 на архитектуре ARM, и кстати это востребовано, людей у нас только на этой планете земле 8,32+ миллиарда людей, и российцы ещё размножаются, рынок сбыта этих книжечек охуительно ётунски как Фёдор Андреевич Махнов огромный.
а у меня в электронной читалке книжек которой я каждые божьи сутки пользуюсь, какой то Линукс или Юникс и процессор вообще RockChip RK2818 на архитектуре ARM, и кстати это востребовано, людей у нас только на этой планете земле 8,32+ миллиарда людей, и российцы ещё размножаются, рынок сбыта этих книжечек охуительно ётунски как Фёдор Андреевич Махнов огромный.
>>2434 (OP)
Я слыхал миф что в процессорах Интела и АМД имеются ошибки.
Ассемблерная команда
mov eax, ebx — должна переместить значение из регистра EBX в регистр EAX, а на самом деле она только копирует, а не перемещает.
Проверьте на работе.
Я слыхал миф что в процессорах Интела и АМД имеются ошибки.
Ассемблерная команда
mov eax, ebx — должна переместить значение из регистра EBX в регистр EAX, а на самом деле она только копирует, а не перемещает.
Проверьте на работе.
>>2434 (OP)
Возможно вам будет полезна книжка:
Modern Processor Design: Fundamentals of Superscalar Processors
John Paul Shen, Mikko H. Lipasti
Waveland Press
2013 год.
Старенькая, но хоть что-то.
Она понятное дело по-английски написана, ну что поделать, в информационных технологиях английский язык это стандарт.
Кстати я мог бы её целиком перевести на русский, но как бы мотивация нужна, труда много, а вознаграждение? бесплатно только птички поют, как говорил славный русский певец Фёдор Шаляпин
Возможно вам будет полезна книжка:
Modern Processor Design: Fundamentals of Superscalar Processors
John Paul Shen, Mikko H. Lipasti
Waveland Press
2013 год.
Старенькая, но хоть что-то.
Она понятное дело по-английски написана, ну что поделать, в информационных технологиях английский язык это стандарт.
Кстати я мог бы её целиком перевести на русский, но как бы мотивация нужна, труда много, а вознаграждение? бесплатно только птички поют, как говорил славный русский певец Фёдор Шаляпин
>>2434 (OP)
хорошее дело-business, например пульты для звукорежиссуры и пульты для театрального и телевизионного и киношного освещения тоже процессоры требуют. Да нынче даже прожектора типа крутящиеся головы тоже с процессорами.
Только с китайцами соперничать тяжело, ведь их коммунистическая партия заставляет демпинговать.
хорошее дело-business, например пульты для звукорежиссуры и пульты для театрального и телевизионного и киношного освещения тоже процессоры требуют. Да нынче даже прожектора типа крутящиеся головы тоже с процессорами.
Только с китайцами соперничать тяжело, ведь их коммунистическая партия заставляет демпинговать.
да нынче для же в калькуляторах для школьников, студентов, офисных рабочих, счетоводов-бухгалтеров - везде процессоры потребны регулярно.
>>2628
довольно продвинутая книга, мне пока рано за неё браться. В планах после того как доделаю свой процессор, подтянуть теорию с помощью учебника по схемотехнике от Харриса. Думаю, потом можно будет собрать что-то ещё и уже тогда переходить к книге, которую ты посоветовал. А английский у меня неплохой, читаю довольно бегло.
довольно продвинутая книга, мне пока рано за неё браться. В планах после того как доделаю свой процессор, подтянуть теорию с помощью учебника по схемотехнике от Харриса. Думаю, потом можно будет собрать что-то ещё и уже тогда переходить к книге, которую ты посоветовал. А английский у меня неплохой, читаю довольно бегло.
>>2434 (OP)
>>2665
Книгу Харисов уже прочитал?
На курсере был курсик Computer Architecture от Princeton University.
Рекомендую книги :
- Computer Architecture: A Quantitative Approach by John L. Hennessy and David A. Patterson (переводную на русский книгу не рекомендую)
- Шень Лапасти уже называли
- Digital Arithmetic by Miloš D. Ercegovac and Tomás Lang
Что за проц проектируешь? Система команд?
>>2665
Книгу Харисов уже прочитал?
На курсере был курсик Computer Architecture от Princeton University.
Рекомендую книги :
- Computer Architecture: A Quantitative Approach by John L. Hennessy and David A. Patterson (переводную на русский книгу не рекомендую)
- Шень Лапасти уже называли
- Digital Arithmetic by Miloš D. Ercegovac and Tomás Lang
Что за проц проектируешь? Система команд?
>>2702
Книгу Харисов ещё не читал. А насчёт архитектуры вот то, что я писал для себя до того, как начать её реализовывать. Там написано всё, что уже готово. Сейчас работаю над системой прерываний.
32REGS | 32BIT[DATA, MATH] | 32BIT[ISA] | 12BIT[ADDRESSATION] | ADDRESSATION BY WORDS
ISA FORMAT [0OOOOOUUUSSSSSSCCCCCBBBBBAAAAAII]
I - IMM SELECTOR {00 - NO IMM ; 01 - B IMM ; 10 - A IMM ; 11 - UNDEFINED}
A - ARG A
B - ARG B
C - ARG C (LIKE X86 OP FORMAT WHEN IMM MODE ACTIVE)
U - EXECUTE UNIT
O - OPCODE
S - SUPER (MANY FUNCTIONAL / IMMEDIATE EXTENSION)
UNIT №000 {
Name=ALU
input (ARG A[U32], ARG B[U32], OPCODE[U5], ENABLE[bit])
out (Result[U32], NewFlags[U5], writeback enable[bit])
OP(00000) - ADD
OP(00001) - SUB
OP(00010) - MUL
OP(00101) - AND
OP(00110) - OR
OP(00111) - XOR
OP(01000) - LOGIC SHIFT LEFT
OP(01001) - LOGIC SHIFT RIGHT
OP(01010) - CMP
}
# ADDRESS DEFAULT GET FROM ARG A
UNIT №001 {
Name=COND
input (FLAGS[U5], OPCODE[U5], ADDRESS[U12])
out (Jmp_En[bit])
OP(00000) - JZ
OP(00001) - JE
OP(00010) - JNZ
OP(00011) - JS
OP(00100) - JNS
OP(00101) - JSB
OP(00110) - JGE
OP(00111) - JLE
OP(01000) - JG
OP(01001) - JB
OP(01010) - JAE
OP(01011) - JBE
OP(01100) - JA
}
# STACK_PTR INITS TO 12'hFFF
UNIT №010 {
Name=MAU
input (OPCODE[U5], ARG A[U32], ARG B[U32], CLK[bit], RST[bit])
out (Mem_Out[U32], Mau_Data[U32], Mau_Addr[U12], Rw[bit])
OP(00000) - LOAD
OP(00001) - STORE
OP(00010) - PUSH
OP(00011) - POP
}
#EXEMPLE IMMEDIATE MODE WITH I=01
FINAL ARG A - AAAAA (REG FROM INSTRUCTION)
FINAL ARG B - IMM CONSTANT FROM {SUPER, ARG C, ARG B} (16-BIT CONCATENATION)
FINAL ARG C - ARG A (DESTINATION REG SHIFTS IN TOP MODULE LIKE X86 FORMAT)
#FLAGS IN MY CPU
[zf, sf, eq, sb, ub]
zf - zero flag (computed from result == 0)
sf - sign flag (computed from result[31])
# all next flags computes in cmp in alu zf and sf flags fills zero when alu makes cmp
eq - a == b
sb - a signed below b
ub - a unsigned below b
# CONTROL UNIT
Stage 0: Initialization. Automatically advances to Stage 1.
Stage 1: Execution. Checks the execution unit type:
ALU: Saves arithmetic flags and returns to Stage 0.
COND: Returns to Stage 0 immediately.
MAU: Checks read/write command. If READ, goes to Stage 2. If WRITE, returns to Stage 0.
* Stage 2: Memory Read Finish. Returns to Stage 0.
Книгу Харисов ещё не читал. А насчёт архитектуры вот то, что я писал для себя до того, как начать её реализовывать. Там написано всё, что уже готово. Сейчас работаю над системой прерываний.
32REGS | 32BIT[DATA, MATH] | 32BIT[ISA] | 12BIT[ADDRESSATION] | ADDRESSATION BY WORDS
ISA FORMAT [0OOOOOUUUSSSSSSCCCCCBBBBBAAAAAII]
I - IMM SELECTOR {00 - NO IMM ; 01 - B IMM ; 10 - A IMM ; 11 - UNDEFINED}
A - ARG A
B - ARG B
C - ARG C (LIKE X86 OP FORMAT WHEN IMM MODE ACTIVE)
U - EXECUTE UNIT
O - OPCODE
S - SUPER (MANY FUNCTIONAL / IMMEDIATE EXTENSION)
UNIT №000 {
Name=ALU
input (ARG A[U32], ARG B[U32], OPCODE[U5], ENABLE[bit])
out (Result[U32], NewFlags[U5], writeback enable[bit])
OP(00000) - ADD
OP(00001) - SUB
OP(00010) - MUL
OP(00101) - AND
OP(00110) - OR
OP(00111) - XOR
OP(01000) - LOGIC SHIFT LEFT
OP(01001) - LOGIC SHIFT RIGHT
OP(01010) - CMP
}
# ADDRESS DEFAULT GET FROM ARG A
UNIT №001 {
Name=COND
input (FLAGS[U5], OPCODE[U5], ADDRESS[U12])
out (Jmp_En[bit])
OP(00000) - JZ
OP(00001) - JE
OP(00010) - JNZ
OP(00011) - JS
OP(00100) - JNS
OP(00101) - JSB
OP(00110) - JGE
OP(00111) - JLE
OP(01000) - JG
OP(01001) - JB
OP(01010) - JAE
OP(01011) - JBE
OP(01100) - JA
}
# STACK_PTR INITS TO 12'hFFF
UNIT №010 {
Name=MAU
input (OPCODE[U5], ARG A[U32], ARG B[U32], CLK[bit], RST[bit])
out (Mem_Out[U32], Mau_Data[U32], Mau_Addr[U12], Rw[bit])
OP(00000) - LOAD
OP(00001) - STORE
OP(00010) - PUSH
OP(00011) - POP
}
#EXEMPLE IMMEDIATE MODE WITH I=01
FINAL ARG A - AAAAA (REG FROM INSTRUCTION)
FINAL ARG B - IMM CONSTANT FROM {SUPER, ARG C, ARG B} (16-BIT CONCATENATION)
FINAL ARG C - ARG A (DESTINATION REG SHIFTS IN TOP MODULE LIKE X86 FORMAT)
#FLAGS IN MY CPU
[zf, sf, eq, sb, ub]
zf - zero flag (computed from result == 0)
sf - sign flag (computed from result[31])
# all next flags computes in cmp in alu zf and sf flags fills zero when alu makes cmp
eq - a == b
sb - a signed below b
ub - a unsigned below b
# CONTROL UNIT
Stage 0: Initialization. Automatically advances to Stage 1.
Stage 1: Execution. Checks the execution unit type:
ALU: Saves arithmetic flags and returns to Stage 0.
COND: Returns to Stage 0 immediately.
MAU: Checks read/write command. If READ, goes to Stage 2. If WRITE, returns to Stage 0.
* Stage 2: Memory Read Finish. Returns to Stage 0.
>>2702
Книгу Харисов ещё не читал. А насчёт архитектуры вот то, что я писал для себя до того, как начать её реализовывать. Там написано всё, что уже готово. Сейчас работаю над системой прерываний.
32REGS | 32BIT[DATA, MATH] | 32BIT[ISA] | 12BIT[ADDRESSATION] | ADDRESSATION BY WORDS
ISA FORMAT [0OOOOOUUUSSSSSSCCCCCBBBBBAAAAAII]
I - IMM SELECTOR {00 - NO IMM ; 01 - B IMM ; 10 - A IMM ; 11 - UNDEFINED}
A - ARG A
B - ARG B
C - ARG C (LIKE X86 OP FORMAT WHEN IMM MODE ACTIVE)
U - EXECUTE UNIT
O - OPCODE
S - SUPER (MANY FUNCTIONAL / IMMEDIATE EXTENSION)
UNIT №000 {
Name=ALU
input (ARG A[U32], ARG B[U32], OPCODE[U5], ENABLE[bit])
out (Result[U32], NewFlags[U5], writeback enable[bit])
OP(00000) - ADD
OP(00001) - SUB
OP(00010) - MUL
OP(00101) - AND
OP(00110) - OR
OP(00111) - XOR
OP(01000) - LOGIC SHIFT LEFT
OP(01001) - LOGIC SHIFT RIGHT
OP(01010) - CMP
}
# ADDRESS DEFAULT GET FROM ARG A
UNIT №001 {
Name=COND
input (FLAGS[U5], OPCODE[U5], ADDRESS[U12])
out (Jmp_En[bit])
OP(00000) - JZ
OP(00001) - JE
OP(00010) - JNZ
OP(00011) - JS
OP(00100) - JNS
OP(00101) - JSB
OP(00110) - JGE
OP(00111) - JLE
OP(01000) - JG
OP(01001) - JB
OP(01010) - JAE
OP(01011) - JBE
OP(01100) - JA
}
# STACK_PTR INITS TO 12'hFFF
UNIT №010 {
Name=MAU
input (OPCODE[U5], ARG A[U32], ARG B[U32], CLK[bit], RST[bit])
out (Mem_Out[U32], Mau_Data[U32], Mau_Addr[U12], Rw[bit])
OP(00000) - LOAD
OP(00001) - STORE
OP(00010) - PUSH
OP(00011) - POP
}
#EXEMPLE IMMEDIATE MODE WITH I=01
FINAL ARG A - AAAAA (REG FROM INSTRUCTION)
FINAL ARG B - IMM CONSTANT FROM {SUPER, ARG C, ARG B} (16-BIT CONCATENATION)
FINAL ARG C - ARG A (DESTINATION REG SHIFTS IN TOP MODULE LIKE X86 FORMAT)
#FLAGS IN MY CPU
[zf, sf, eq, sb, ub]
zf - zero flag (computed from result == 0)
sf - sign flag (computed from result[31])
# all next flags computes in cmp in alu zf and sf flags fills zero when alu makes cmp
eq - a == b
sb - a signed below b
ub - a unsigned below b
# CONTROL UNIT
Stage 0: Initialization. Automatically advances to Stage 1.
Stage 1: Execution. Checks the execution unit type:
ALU: Saves arithmetic flags and returns to Stage 0.
COND: Returns to Stage 0 immediately.
MAU: Checks read/write command. If READ, goes to Stage 2. If WRITE, returns to Stage 0.
* Stage 2: Memory Read Finish. Returns to Stage 0.
Книгу Харисов ещё не читал. А насчёт архитектуры вот то, что я писал для себя до того, как начать её реализовывать. Там написано всё, что уже готово. Сейчас работаю над системой прерываний.
32REGS | 32BIT[DATA, MATH] | 32BIT[ISA] | 12BIT[ADDRESSATION] | ADDRESSATION BY WORDS
ISA FORMAT [0OOOOOUUUSSSSSSCCCCCBBBBBAAAAAII]
I - IMM SELECTOR {00 - NO IMM ; 01 - B IMM ; 10 - A IMM ; 11 - UNDEFINED}
A - ARG A
B - ARG B
C - ARG C (LIKE X86 OP FORMAT WHEN IMM MODE ACTIVE)
U - EXECUTE UNIT
O - OPCODE
S - SUPER (MANY FUNCTIONAL / IMMEDIATE EXTENSION)
UNIT №000 {
Name=ALU
input (ARG A[U32], ARG B[U32], OPCODE[U5], ENABLE[bit])
out (Result[U32], NewFlags[U5], writeback enable[bit])
OP(00000) - ADD
OP(00001) - SUB
OP(00010) - MUL
OP(00101) - AND
OP(00110) - OR
OP(00111) - XOR
OP(01000) - LOGIC SHIFT LEFT
OP(01001) - LOGIC SHIFT RIGHT
OP(01010) - CMP
}
# ADDRESS DEFAULT GET FROM ARG A
UNIT №001 {
Name=COND
input (FLAGS[U5], OPCODE[U5], ADDRESS[U12])
out (Jmp_En[bit])
OP(00000) - JZ
OP(00001) - JE
OP(00010) - JNZ
OP(00011) - JS
OP(00100) - JNS
OP(00101) - JSB
OP(00110) - JGE
OP(00111) - JLE
OP(01000) - JG
OP(01001) - JB
OP(01010) - JAE
OP(01011) - JBE
OP(01100) - JA
}
# STACK_PTR INITS TO 12'hFFF
UNIT №010 {
Name=MAU
input (OPCODE[U5], ARG A[U32], ARG B[U32], CLK[bit], RST[bit])
out (Mem_Out[U32], Mau_Data[U32], Mau_Addr[U12], Rw[bit])
OP(00000) - LOAD
OP(00001) - STORE
OP(00010) - PUSH
OP(00011) - POP
}
#EXEMPLE IMMEDIATE MODE WITH I=01
FINAL ARG A - AAAAA (REG FROM INSTRUCTION)
FINAL ARG B - IMM CONSTANT FROM {SUPER, ARG C, ARG B} (16-BIT CONCATENATION)
FINAL ARG C - ARG A (DESTINATION REG SHIFTS IN TOP MODULE LIKE X86 FORMAT)
#FLAGS IN MY CPU
[zf, sf, eq, sb, ub]
zf - zero flag (computed from result == 0)
sf - sign flag (computed from result[31])
# all next flags computes in cmp in alu zf and sf flags fills zero when alu makes cmp
eq - a == b
sb - a signed below b
ub - a unsigned below b
# CONTROL UNIT
Stage 0: Initialization. Automatically advances to Stage 1.
Stage 1: Execution. Checks the execution unit type:
ALU: Saves arithmetic flags and returns to Stage 0.
COND: Returns to Stage 0 immediately.
MAU: Checks read/write command. If READ, goes to Stage 2. If WRITE, returns to Stage 0.
* Stage 2: Memory Read Finish. Returns to Stage 0.
>>2721
Что за нейрослоуп? Вообще ты бы просто реализовал бы рискфаве-32 базовую целочисленную архитектуру, и погонял бы потом их тесты. Проц у тебя на фпга уже залит?
Что за нейрослоуп? Вообще ты бы просто реализовал бы рискфаве-32 базовую целочисленную архитектуру, и погонял бы потом их тесты. Проц у тебя на фпга уже залит?
>>2738
Да проц на фпга уже залит, все инструкции протестированы, а во-вторых, мне по кайфу делать свою архитектуру, как то так.
Да проц на фпга уже залит, все инструкции протестированы, а во-вторых, мне по кайфу делать свою архитектуру, как то так.
>>2750
индейцы народа Майя тоже так говорили когда двадцатеричную систему счисления стругали из бревна.
> мне по кайфу делать свою архитектуру, как то так.
индейцы народа Майя тоже так говорили когда двадцатеричную систему счисления стругали из бревна.
>>2434 (OP)
Пробовал ли на Tang Nano 9k TPU делоть? Пробовал ли LLM на FPGA запускать? Такое вот интересует, но никогда с FPGA не работал, на сколько макетки дорогие?
Пробовал ли на Tang Nano 9k TPU делоть? Пробовал ли LLM на FPGA запускать? Такое вот интересует, но никогда с FPGA не работал, на сколько макетки дорогие?
>>3608
написял тебе в ротеш, чушпан
написял тебе в ротеш, чушпан
>>3484
лмм на танг нано 9к не встанет ну прям вообще никак, максимум, что на ней можно реализовать в плане ии это думаю нейронку которая распознает рукописные цифры и то с трудом. Стоит моя плата пару тысяч рублей, но если ты хочешь попробовать запускать что-то серьёзное, то придется раскошелиться гораздо больше.
лмм на танг нано 9к не встанет ну прям вообще никак, максимум, что на ней можно реализовать в плане ии это думаю нейронку которая распознает рукописные цифры и то с трудом. Стоит моя плата пару тысяч рублей, но если ты хочешь попробовать запускать что-то серьёзное, то придется раскошелиться гораздо больше.
>>3775
Ну тоесть на ESP32 запускают, а на этой шляпе нет?
Тогда не нужно
>лмм на танг нано 9к не встанет ну прям вообще никак
Ну тоесть на ESP32 запускают, а на этой шляпе нет?
>раскошелиться гораздо больше
Тогда не нужно
>>3816
ну ты сравнил, конечно, вещи абсолютно разные, еспшка готовая зацементированная на чипе система, в которой каждый элемент стоит впритык друг к другу, чтобы сигналы проходили с минимальными задержками, а фпга программируемая матрица логических таблиц. Она физически не может быть такой же производительной на одно вычислительное ядро, как есп. Её главные преимущества не скорость и грубая вычислительная мощность, а свобода творчества, когда схема, которую ты спроектировал, оживает в настоящем железе, а не в эмуляторе и параллельные вычисления, как пример обработка множественных высокочастотных сигналов.
ну ты сравнил, конечно, вещи абсолютно разные, еспшка готовая зацементированная на чипе система, в которой каждый элемент стоит впритык друг к другу, чтобы сигналы проходили с минимальными задержками, а фпга программируемая матрица логических таблиц. Она физически не может быть такой же производительной на одно вычислительное ядро, как есп. Её главные преимущества не скорость и грубая вычислительная мощность, а свобода творчества, когда схема, которую ты спроектировал, оживает в настоящем железе, а не в эмуляторе и параллельные вычисления, как пример обработка множественных высокочастотных сигналов.
>>3890
Ну вот чел Квен запустил на ФПГА
https://www.pvsm.ru/open-source/459654
короче, ты нубас еще походу
Ну вот чел Квен запустил на ФПГА
https://www.pvsm.ru/open-source/459654
короче, ты нубас еще походу
Так у нас и платы совершенно разного уровня.
На моей установлено всего 9 тысяч логических элементов, тогда как у него 477 тысяч
У меня на плате 50 с небольшим килобайт блочной памяти у него более 4 мегабайт
Кроме того, на моей плате распаяно 8мбайт псрам, у него 4 гб озу
На моей установлено всего 9 тысяч логических элементов, тогда как у него 477 тысяч
У меня на плате 50 с небольшим килобайт блочной памяти у него более 4 мегабайт
Кроме того, на моей плате распаяно 8мбайт псрам, у него 4 гб озу
>>2434 (OP)
А можно ли гипотетически с помощью ИИ сделать завод про производству всех этих железяк? Неправильно что тайваньские корпы держат монополию на это все. Без массового и дешёвого компьюта сингулярность не построим.
А можно ли гипотетически с помощью ИИ сделать завод про производству всех этих железяк? Неправильно что тайваньские корпы держат монополию на это все. Без массового и дешёвого компьюта сингулярность не построим.
>>4215
Да что вы говорите?
Подай тогда схему и руководство по производству AMD Ryzen 9 сюда
>Технологии известны
Да что вы говорите?
Подай тогда схему и руководство по производству AMD Ryzen 9 сюда
>>4150
Здесь трудно это обсуждать, ведь подкупленный модератор удаляет ценные сообщения (причём они не связаны с политикой).
Здесь трудно это обсуждать, ведь подкупленный модератор удаляет ценные сообщения (причём они не связаны с политикой).
>>4215
Многие технологии вам не известны. Талантливые и обученные люди решают всё, перефразируя цитату от Генсека Джагашвилли.
И мою критику интеллекта китайцев подкупленный модератор мгновенно удалил.
Ты вообще обрати внимание что какой то злодей рездел инженерии этого сайта закрыл и досками заколотил.
>Технологии известны, нужны бабосы и желание.
Многие технологии вам не известны. Талантливые и обученные люди решают всё, перефразируя цитату от Генсека Джагашвилли.
И мою критику интеллекта китайцев подкупленный модератор мгновенно удалил.
Ты вообще обрати внимание что какой то злодей рездел инженерии этого сайта закрыл и досками заколотил.