Instruction-level parallelism (original) (raw)
- التوازي على مستوى التعليمات (بالإنجليزية: ILP : Instruction-level parallelism) مقياس لعدد العمليات الموجودة في برنامج حاسوبي والتي يمكن أن تنفذ على التوازي. لتمثيل ذلك نأخذ البرنامج التالي : 1. * e = a + b 2. * f = c + d 3. * g = e + f العملية رقم 3 مرتبطة بنتيجة العمليات 1 و2، فهي بذلك لا تنفذ إلا بعد تنفيذ 1 و2. ولكن بالمقابل فالعمليات 1 و2 غير مرتبطة فيما بينها هذا ما يسمح بتنفيذها بشكل متواز. وإذا اعتبرنا أن تنفيذ كل عملية يستغرق وحدة زمنية واحدة فإن تنفيذ العمليات الثلاث يستهلك وحدتين عوضا عن ثلاث، وبالتالي فإن نسبة التوازي على مستوى التعليمة هي (2/3). ترجع مهمة تحديد التعليمات القابلة للتنفيذ المتوازي إلى مصممي المترجمات (compiler) والمعالجات (processor) وذلك من أجل الاستفادة قدر ما أمكن من عملية لموازاة. وتختلف مدى الحاجة للعملية الموازاة على مستوى التعليمات حسب مجالات الاستفادة. فهي في مجالات كالحوسبة العلمية والمعالجة الرسومي أكثر استخداماً منها في حالات أخرى كالتشفير حيث معظم العمليات متسلسلة. (ar)
- Instruction-level parallelism (ILP) is the parallel or simultaneous execution of a sequence of instructions in a computer program. More specifically ILP refers to the average number of instructions run per step of this parallel execution. (en)
- Il parallelismo a livello di istruzione (ILP) esiste quando delle istruzioni di un programma sono indipendenti e quindi possono essere eseguite in calcolo parallelo. La ricerca di codice parallelo a livello di istruzioni è una priorità nei moderni microprocessori che sono dotati di molte unità di calcolo e usualmente seguono una struttura a pipeline quindi l'individuazione e lo sfruttamento delle istruzioni eseguibili in parallelo permette di utilizzare le unità funzionali dei processori innalzandone le prestazioni. Consideriamo il seguente frammento di pseudocodice: 1) h = a + b2) f = c + d3) g = h * f L'istruzione 1 e l'istruzione 2 possono essere eseguite in parallelo dato che richiedono dei dati (a, b, c, d) che non sono utilizzate da altre istruzioni e quindi sono libere. Invece l'istruzione 3 per venire eseguita deve attendere il completamento delle prime due istruzioni dato che i dati h e f dipendono dall'esecuzione delle prime due istruzioni. Supponendo di avere delle unità di calcolo (ALU) indipendenti quindi si possono eseguire le istruzioni 1 e 2 in parallelo mentre la 3 deve attendere le altre due. Supponendo di avere unità che eseguono le operazioni in un ciclo di clock eseguendo le operazioni in parallelo si può completare il codice in due cicli di clock mentre un'esecuzione seriale del codice richiederebbe tre cicli di clock. Con questa modifica l'ILP diventa 3/2 dato che si eseguono tre istruzioni in due cicli di clock. (it)
- 命令レベルの並列性(めいれいレベルのへいれつせい、Instruction-level parallelism、ILP)とは、プログラムの中で並行して実行できる処理がいくつあるかの尺度である。 (ja)
- Instruction Level Parallelism (ILP) – parametr dotyczący oprogramowania, który mówi o tym jaka część z operacji zawartych w kodzie może być wykonana równolegle. ILP może być wartością czysto teoretyczna, w której dany programy analizowany jest tak jakby był uruchamiany na maszynie o nieskończonej liczbie zasobów. To znaczy nie są brane pod uwagę inne programy i braki ograniczonych zasobów typu rejestry. ILP może być również traktowane jako średnia liczba instrukcji faktycznie wykonywanych równolegle i mówi się wówczas o metodach zwiększania ILP. (pl)
- Instruction-level parallelism (ILP) är när en sekvens av instruktioner exekveras samtidigt eller parallellt i ett datorprogram. ILP refererar till det genomsnittliga antalet instruktioner som körs per steg i den parallella exekveringen. (sv)
- Паралелізм на рівні команд (англ. Instruction-level parallelism, ILP) — є мірою того, яка кількість операцій в комп'ютерній програмі може виконуватися одночасно. Потенційне поєднання виконання команд називається паралелізмом на рівні команд. Є два підходи до паралелізму на рівні команд: * апаратного забезпечення * програмного забезпечення Рівень апаратного забезпечення працює на динамічному паралелізмі, тоді як, рівень програмного забезпечення працює на статичному паралелізмі. Процесор Pentium працює на динамічній послідовності паралельного виконання, але Itanium процесор працює на статичному паралелізмі. Розглянемо наступну програму: 1. * e = a + b 2. * f = c + d 3. * m = e * f Операція 3 залежить від результатів 1 і 2, тому вона не може бути розрахована, поки обидві з них не будуть завершені. Однак операції 1 і 2 не залежать від будь-якої іншої операції, тому вони можуть бути обчислені одночасно. Якщо припустити, що кожна операція може бути завершена в одну одиницю часу, то ці три інструкції можуть бути завершені в цілому за дві одиниці часу, даючи ILP 3/2. Мета розробників компілятора і процесора, полягає у виявленні та отриманні від ILP максимально можливої вигоди. Звичайні програми, як правило, написані під послідовну модель виконання, де команди виконуються одна за одною в порядку, встановленому програмістом. ILP дозволяє компілятору і процесору перекривати виконання декількох інструкцій або навіть змінити порядок виконання команд. Скільки ILP існує в програмах — сильно залежить від області застосування програми. У деяких областях, таких як графіка і наукові обчислення, число може бути дуже великим. Тим не менш, робочі навантаження, такі як криптографія, можуть проявляти набагато менше паралелізму. Мікроархітектурні методи для забезпечення ILP:: * Обчислювальний конвеєр, де виконання декількох інструкцій може частково перекриватися. * Суперскалярне виконання, VLIW і тісно пов'язана з ними концепція мікропроцесорної архітектури з явним паралелізмом команд, в якій кілька функціональних блоків використовуються для виконання декількох команд паралельно * Позачергове виконання, де інструкції виконуються в будь-якому порядку, що не порушує залежності даних. Зверніть увагу, що цей метод не залежить ні від конвеєра, ні від суперскаляра. Поточна реалізація позачергового виконання динамічно (тобто, в той час як програма виконується і без всякої допомоги з боку компілятора) витягує ILP від звичайних програм. Як альтернативу можна витягти цей паралелізм під час компіляції і якось передати цю інформацію до апаратного забезпечення. Через складність техніки перерахунку позачергового виконання, промисловість переглянула набір команд, які явно кодують кілька незалежних операцій в інструкції. * Перейменування регістрів, яке посилається на метод, який використовується, щоб уникнути непотрібної серіалізації операцій, вироблених програмою, які накладають повторне використання регістрів по цих операціях, використовується для позачергового виконання. * Спекулятивне виконання, яке дозволяє виконанню повних інструкцій або частин інструкцій переконатися, чи слід цьому виконанню відбутися. Часто використовуваною формою спекулятивного виконання є пропозиція управління потоком, де інструкції пропускають управління потоком інструкцій (наприклад, перехід) і виконуються до того як визначиться мета потоку управління інструкцій. Кілька інших форми спекулятивного виконання були запропоновані і використовуються в тому числі для спекулятивного виконання, обумовлені прогнозуванням значення, прогнозуванням залежностей пам'яті і прогнозування латентності кешу. * Передбачення переходів, який використовується, щоб уникнути припинення контролю залежностей, які необхідно вирішити. Провісник переходів використовується з спекулятивним виконанням. Потокові архітектури являють собою інший клас архітектур, де ILP явно вказані. Наприклад, архітектуру TRIPS. (uk)
- 指令層級平行(英語:Instruction-level parallelism,縮寫為 ILP),一種平行計算形式,在一個程式運行中,許多指令操作,能在同時間進行。它也是一個測量值,用來計算在一個程式運算中,它有多少個指令能夠在同時間運算,稱為指令層級平行度。 實現指令層級,可以用硬體或軟體方式來實作。硬體方式有超純量。 (zh)
- Параллелизм на уровне команд (англ. Instruction-level parallelism — ILP) является мерой того, какое множество операций в компьютерной программе может выполняться одновременно. Потенциальное совмещение выполнения команд называется «параллелизмом на уровне команд». (ru)
- http://homes.cs.ru.ac.za/philip/Publications/Techreports/2002/Reports/memory-wall-survey.pdf
- https://www.scribd.com/doc/33700101/Instruction-Level-Parallelism%23scribd
- https://www.wired.com/wired/archive/4.08/geek.html
- http://www.hpl.hp.com/techreports/92/HPL-92-132.pdf
- dbr:Memory_dependence_prediction
- dbr:Register_renaming
- dbr:Instruction_pipelining
- dbr:Instruction_scheduling
- dbr:Register_allocation
- dbr:Pentium
- dbr:Compiler
- dbr:Cryptography
- dbr:Run_time_(program_lifecycle_phase)
- dbr:Out-of-order_execution
- dbr:Multithreading_(computer_architecture)
- dbr:Concurrency_(computer_science)
- dbr:Compile_time
- dbr:Computer_hardware
- dbr:Computer_program
- dbr:Parallel_computing
- dbr:Speculative_execution
- dbc:Instruction_processing
- dbr:Data_dependency
- dbr:Dataflow_architecture
- dbr:Execution_unit
- dbr:Central_processing_unit
- dbr:Process_(computing)
- dbr:Itanium
- dbc:Parallel_computing
- dbr:TRIPS_architecture
- dbr:Thread_(computing)
- dbr:Scientific_computing
- dbr:Instruction_set
- dbr:Memory-level_parallelism
- dbr:Multiprocessing
- dbr:Software
- dbr:Explicitly_parallel_instruction_computing
- dbr:IBM_System/360_Model_91
- dbr:Very_long_instruction_word
- dbr:Superscalar
- dbr:Branch_prediction
- dbr:File:Atanasoff-Berry_Computer_at_Durhum_Center.jpg
- dbr:Cache_latency_prediction
- dbr:Value_prediction
- dbo:Software
- yago:WikicatMicroprocessors
- yago:Artifact100021939
- yago:Chip103020034
- yago:Conductor103088707
- yago:Device103183080
- yago:Instrumentality103575240
- yago:Microprocessor103760310
- yago:Object100002684
- yago:PhysicalEntity100001930
- yago:SemiconductorDevice104171831
- yago:Whole100003553
- Instruction-level parallelism (ILP) is the parallel or simultaneous execution of a sequence of instructions in a computer program. More specifically ILP refers to the average number of instructions run per step of this parallel execution. (en)
- 命令レベルの並列性(めいれいレベルのへいれつせい、Instruction-level parallelism、ILP)とは、プログラムの中で並行して実行できる処理がいくつあるかの尺度である。 (ja)
- Instruction Level Parallelism (ILP) – parametr dotyczący oprogramowania, który mówi o tym jaka część z operacji zawartych w kodzie może być wykonana równolegle. ILP może być wartością czysto teoretyczna, w której dany programy analizowany jest tak jakby był uruchamiany na maszynie o nieskończonej liczbie zasobów. To znaczy nie są brane pod uwagę inne programy i braki ograniczonych zasobów typu rejestry. ILP może być również traktowane jako średnia liczba instrukcji faktycznie wykonywanych równolegle i mówi się wówczas o metodach zwiększania ILP. (pl)
- Instruction-level parallelism (ILP) är när en sekvens av instruktioner exekveras samtidigt eller parallellt i ett datorprogram. ILP refererar till det genomsnittliga antalet instruktioner som körs per steg i den parallella exekveringen. (sv)
- 指令層級平行(英語:Instruction-level parallelism,縮寫為 ILP),一種平行計算形式,在一個程式運行中,許多指令操作,能在同時間進行。它也是一個測量值,用來計算在一個程式運算中,它有多少個指令能夠在同時間運算,稱為指令層級平行度。 實現指令層級,可以用硬體或軟體方式來實作。硬體方式有超純量。 (zh)
- Параллелизм на уровне команд (англ. Instruction-level parallelism — ILP) является мерой того, какое множество операций в компьютерной программе может выполняться одновременно. Потенциальное совмещение выполнения команд называется «параллелизмом на уровне команд». (ru)
- التوازي على مستوى التعليمات (بالإنجليزية: ILP : Instruction-level parallelism) مقياس لعدد العمليات الموجودة في برنامج حاسوبي والتي يمكن أن تنفذ على التوازي. لتمثيل ذلك نأخذ البرنامج التالي : 1. * e = a + b 2. * f = c + d 3. * g = e + f العملية رقم 3 مرتبطة بنتيجة العمليات 1 و2، فهي بذلك لا تنفذ إلا بعد تنفيذ 1 و2. ولكن بالمقابل فالعمليات 1 و2 غير مرتبطة فيما بينها هذا ما يسمح بتنفيذها بشكل متواز. وإذا اعتبرنا أن تنفيذ كل عملية يستغرق وحدة زمنية واحدة فإن تنفيذ العمليات الثلاث يستهلك وحدتين عوضا عن ثلاث، وبالتالي فإن نسبة التوازي على مستوى التعليمة هي (2/3). (ar)
- Il parallelismo a livello di istruzione (ILP) esiste quando delle istruzioni di un programma sono indipendenti e quindi possono essere eseguite in calcolo parallelo. La ricerca di codice parallelo a livello di istruzioni è una priorità nei moderni microprocessori che sono dotati di molte unità di calcolo e usualmente seguono una struttura a pipeline quindi l'individuazione e lo sfruttamento delle istruzioni eseguibili in parallelo permette di utilizzare le unità funzionali dei processori innalzandone le prestazioni. Consideriamo il seguente frammento di pseudocodice: (it)
- Паралелізм на рівні команд (англ. Instruction-level parallelism, ILP) — є мірою того, яка кількість операцій в комп'ютерній програмі може виконуватися одночасно. Потенційне поєднання виконання команд називається паралелізмом на рівні команд. Є два підходи до паралелізму на рівні команд: * апаратного забезпечення * програмного забезпечення Розглянемо наступну програму: 1. * e = a + b 2. * f = c + d 3. * m = e * f Мікроархітектурні методи для забезпечення ILP:: Потокові архітектури являють собою інший клас архітектур, де ILP явно вказані. Наприклад, архітектуру TRIPS. (uk)
- توازي على مستوى التعليمة (ar)
- Instruction-level parallelism (en)
- Instruction level parallelism (it)
- 命令レベルの並列性 (ja)
- Instruction Level Parallelism (pl)
- Параллелизм на уровне команд (ru)
- Instruction-level parallelism (sv)
- 指令層級平行 (zh)
- Паралелізм на рівні команд (uk)
is dbo:wikiPageWikiLink of
- dbr:Predication_(computer_architecture)
- dbr:Program_optimization
- dbr:List_of_computer_scientists
- dbr:Minimal_instruction_set_computer
- dbr:Processor_power_dissipation
- dbr:Algorithmic_efficiency
- dbr:Josh_Fisher
- dbr:Register_renaming
- dbr:Cycles_per_instruction
- dbr:Instruction_pipelining
- dbr:Instruction_scheduling
- dbr:GeForce_600_series
- dbr:Glossary_of_computer_science
- dbr:Golden_Cove
- dbr:Moore's_law
- dbr:Multithreading_(computer_architecture)
- dbr:Cache_performance_measurement_and_metric
- dbr:Stack_machine
- dbr:Computer_engineering_compendium
- dbr:Hardware_acceleration
- dbr:Microarchitecture
- dbr:Parallel_computing
- dbr:Permuted_congruential_generator
- dbr:Mateo_Valero
- dbr:Micro-operation
- dbr:Tom_Conte
- dbr:Data_dependency
- dbr:Galois/Counter_Mode
- dbr:Framewave
- dbr:Central_processing_unit
- dbr:Foxton_Technology
- dbr:Granularity_(parallel_computing)
- dbr:Multi-core_processor
- dbr:Memory_disambiguation
- dbr:Hardware_scout
- dbr:Itanium
- dbr:Software_pipelining
- dbr:LAPACK
- dbr:Sun_Microsystems
- dbr:Release_consistency
- dbr:Fifth_generation_of_video_game_consoles
- dbr:Instruction_set_architecture
- dbr:Secure64_Software
- dbr:ILP
- dbr:Loop_fission_and_fusion
- dbr:Memory-level_parallelism
- dbr:System_on_a_chip
- dbr:Tomasulo's_algorithm
- dbr:Explicitly_parallel_instruction_computing
- dbr:IA-64
- dbr:IEEE_Rebooting_Computing
- dbr:Roofline_model
- dbr:Thread_block_(CUDA_programming)
- dbr:XOR_swap_algorithm
- dbr:Multiflow
- dbr:Simultaneous_multithreading
- dbr:SimOS
- dbr:Parallel_programming_model
- dbr:Superscalar_processor
- dbr:Trace_scheduling
- dbr:Instruction_level_parallelism