Перейти к содержанию
    

flammmable

Свой
  • Постов

    297
  • Зарегистрирован

  • Посещение

Репутация

0 Обычный

Информация о flammmable

  • Звание
    Местный
    Местный

Посетители профиля

2 866 просмотров профиля
  1. Смотрите, на текущий момент основой любого оперативного запоминающего устройства, её элементарной ячейкой, является или транзистор+конденсатор (для динамических памятей), или 6-транзисторная ячейка статической памяти, или триггер. Но так было не всегда. Когда-то в качестве оперативной памяти применялись линии задержки. В рассматриваемом случае динамическая и статическая памяти нам не интересны. В конвейризированном процессороподобном устройстве между стадиями конвейера будут стоять триггеры. Но. Что если длинная и безтриггерная структура, реализующая операции fetch-decode-execute-save будет, так скажем, "запоминать" промежуточные результаты подобно тому, как это делали линии задержки? То есть триггеров нет, но полное исполнение инструкции занимает больше одного такта и в структуре идёт одновременная обработка разных стадий инструкции. И в той части, что функционально соответствует стадии execute есть вывод, заходящий в стадию fetch для сброса этого псевдоконвейера в случае не-угадывания направления ветвления. Понимаю, что описываемая конструкция выглядит дико. Но, в теории, у неё будет чуть меньшая латентность по сравнению с классическим конвейером, у которого есть триггеры между стадиями. Хочу проговорить, я не пытаюсь тут изобрести вечный двигатель. Но, как мне кажется, технически, такую структуру вполне возможно построить. А раз возможно построить, то в рамках борьбы с зашоренностью, мне хотелось бы узнать: - делает ли так кто-нибудь? - если да, то зачем? Какие преимущества и на каких задачах будет иметь подобное устройство? - если нет, то есть ли какие-нибудь доводы против, кроме сложности работы с задержками?
  2. Переформулирую. Возможно ли такое неконвейризированное процессорное ядро, в котором время выполнения инструкции (точнее, время прохождения очередной инструкции от её выборки до исполнения) было бы больше периода тактового сигнала?
  3. Добрый день! Восполняя пробелы своего образования иногда натыкаюсь на тематические пробелы комьюнити - на темы, которые не принято обсуждать в приличном обществе. Например, некоторое время назад я задавал ряд вопросов про работу конвейера STM32F1xx (Cortex-M3). Глобально, меня интересовало, как детерминированно определить время исполнения любой команды в Cortex-M3. Если формулировать вопрос более узко, то сейчас я пожалуй спросил бы, отражено ли где-нибудь в документации, как именно Cortex-M3 производит предварительную выборку команды в конвейер в случае ветвления. То есть каким правилом он руководствуется. Крайне маловероятно, чтобы это правило у микроконтроллеров в корпусах LQFP-48 предусматривало какую-то сложную эвристику. Ответы оказалось возможным сгруппировать в три категории: 1) А зачем вам это всё знать? 2) Используйте регистр DWT для статистической оценки времени выполнения команд. 3) В XXI веке в приличном обществе не принято считать такты. Вот раньше Жигули заводились с крюка, а теперь вы ищите этот крюк в Мерседесе. Вы всё делаете не так, а надо делать так. - По поводу комментариев, подобных первому, я изложил суть здесь. - Использование статистических методов для определения результатов детерминированного процесса у меня вызывает ассоциации с бегом в мешке - можно, но зачем? - По поводу крюка, Мерседеса и приличий я совсем недавно открыл для себя микроконтроллеры Sitara AM437x 2014 года от Texas Instruments. По сути эти микроконтроллеры являются Мерседесом с двумя крюками. В них помимо ядра Cortex-A присутствует пара сопроцессоров PRU0/PRU1. Сопроцессоры представляют из себя неконвейризированные(!) вычислительные ядра, работающие на частоте 200МГц и имеющие гарантированное и фиксированное время выполнения инструкций в 5 нс. А ещё есть статья Ensuring real-time predictability, рассказывающая об этой серии микроконтроллеров и намекающая, что подсчёт тактов в XXI веке вполне актуален. Но теперь у меня появился новый неприличный вопрос. Возможен ли конвейер без триггеров? Точнее так, конечно он возможен. Но есть ли такой класс задач, где подобное нетипичное решение имело бы какие-либо преимущества? И если да, то каковы особенности конструирования подобного устройства? Гуглинг по словам trigger-free pipeline и triggerless pipeline не выявил никаких процессоро-подобных изделий. Но возможно кто-нибудь сталкивался с подобным. Или сможет объяснить, почему подобная структура принципиально не применима ни в одной практической задаче.
  4. Позвольте узнать, а зачем же вы тогда приводите в качестве примера наивысшей точности то устройство, о точности которого вы "без понятия"? Вам не кажется это нелогичным? )))))))))))))))))))))))) Кроме этого. Если вдруг ваше устройство не внесено в реестр СИ, и вы в ходе измерений получили значение длительность входного импульса в 1пс, что вас убеждает в том, что это действительно 1пс, а не 1,01пс или 100500пс?
  5. Не хочу вас расстраивать, но СКО у ГЭТ 1-2022 при измерении одной секунды составляет одну фемтосекунду. При измерении более коротких длительностей СКО соответственно уменьшится. Да, ГЭТ 1-2022 не получится напрямую использовать для измерения пикосекундных длительностей. Ну так и у эталона длины ГЭТ 2-2021 диапазон передачи единицы от 1нм до 30м. Но это не значит, что, скажем, геодезические тахеометры, измеряющие расстояние на 5000 метров, выкинуты из поверочной схемы.
  6. И вы, разумеется, способны привести пример такого средства измерения, а также назвать измеряемую им физическую величину?
  7. Его вариант - синхросигнал обязателен. Ваш вариант - его вариант тоже имеет право на жизнь, но синхросигнал не обязателен. Держу себя в руках изо всех сил. Нет. Мы ищем не единичный, а наихудший джиттер. Тот, при котором возможно повреждение данных. Я утверждаю, что наихудшим является последний бит последовательности перед пересинхронизацией. Первая мысль, которая у меня возникла: "А с чего бы ему не быть гауссовым? А каким ещё ему быть, как не гауссовым?". Но я быстро сообразил, что здесь есть большой простор для софистики. Ведь если, к примеру, вершина распределения смещена на бесконечно малое эпсилон, это уже как бы и не гауссово распределение вовсе. И вообще, что такое гауссово распределение, как не некая идеализированная абстракция? Поэтому давайте представим, что у нас последовательность из двух бит, и неизвестным распределением джиттера. Передний, так скажем фронт первого бита "закреплён". Задний - колеблется. При этом задний фронт первого бита одновременно является передним фронтом второго бита. Можем ли мы утверждать, что задний фронт второго бита будет колебаться ещё сильнее (относительно переднего, "закреплённого" фронта первого бита)? Если да, то далее рассматриваем последовательность из трёх бит. А затем по индукции последовательность в которой есть N и N-1 биты. Я утверждаю, что N бит всегда будет дрожать сильнее, чем N-1 бит. Вы утверждаете, что такое справедливо лишь для нормально распределённого джиттера. Крайне любопытно, что за тип распределения, на ваш взгляд, может дать иную картину? И почему джиттер в битовой последовательности может, даже ультратеоретически, быть распределён таким образом? Так. Предположим у нас есть передатчик битовой последовательности и приёмник битовой последовательности, синхросигнала нет. Передатчик и приёмник в 0 времени синхронизированы. Ввиду тактирования от разных источников, в некий момент t произойдёт рассинхронизация. Чтобы данные передавались стабильно, протокол - любой протокол - должен будет предусматривать пересинхронизацию до наступления момента t (пока предположим для простоты, что t - фиксирована). Предположим, мы записали осциллограмму длительностью M*t. То есть за это время произошло, как минимум, M-1 синхронизаций. И соответственно, M-1 скачков фазы идеального синхросигнала. Мы выделяем из передаваемых данных частоту синхросигнала. А фазу синхросигнала ставим на 0 записанной осциллограммы. Какой будет прок от этого синхросигнала в момент времени, скажем, (M-1)*t, когда фаза реального синхросигнала (относительно 0 времени) прыгнула уже M-2 раз? Если мы в соответствии с нашим аналитическим сигналом нарубим осциллограмму на глазковую диаграмму, то она покажет, что глаз закрыт. В то время, как в реальности данные бодро и безошибочно передавались. Попробую последовать вашей просьбе и уточню два важные детали. У нас имеется система: передатчик -> линия_передачи -> приёмник. Вопрос: куда вы подключите осциллограф, чтобы снять глазковую диаграмму? Если до приёмника, то что за компаратор вы имеете ввиду? Смотрите. По определению, в мире не существует средств измерения точнее, чем международные первичные эталоны. А в стране не существует средств измерения точнее, чем национальные первичные эталоны. Иначе почему первичным эталоном является эталон, а не является это "самое точное средство измерения"? Далее, чтобы адекватно производить передачу единицы измерения от первичных эталонов к рабочим средствам измерения необходимо, чтобы ступени этой метрологической пирамиды отличались друг от друга по точности в несколько раз. Иначе невозможна корректная передача единицы при поверке. Кроме этого, средств измерений вне метрологической пирамиды не существует. По определению. Не может быть "просто очень точный микрометр", "просто очень точные часы" и "просто очень точный осциллограф". Так вот. Осциллографы, реализующие функцию построения глазковой диаграммы являются рабочими средствами измерения и встроены в поверочную иерархию. То, что вы пытаетесь вывести, является на мой взгляд формой какого-то бытового агностицизма. На мой взгляд это достаточно сомнительное занятие.
  8. Нет. То есть _4afc_ ошибается, верно? Говоря чуть строже, джиттер N-ого бита будет равен корню из N, умноженному на джиттер первого после пересинхронизации бита (так скажем, на элементарный джиттер). Корень из N, он больше, чем корень из N-1. И больше, чем корень из N-2. И больше, чем корень из N-K, где N и К целые положительные числа и N больше, чем K. Поэтому возникает вопрос... ...с чего бы, если последний бит в пакете имеет наибольшее N? Я понимаю, что это, типа, интернет-дискуссия и здесь вместо тезисов, аргументов и контраргументов можно даже ммм... пукнуть подмышкой, заложив туда ладонь противоположной руки и резко прижав одноимённую руку к корпусу. Но всё же. Можно как-то аргументировать свои "нет, это так/нет, это не так". А то у меня ощущение, что половина здесь - доктора технических наук и как минимум член-корреспонденты - по стилю безапелляционности, конечно. Кроме безапелляционности мне ещё нравится в интернет-дискуссиях отвечают не на вопросы/аргументы/комментарии собеседника, а на что-то своё. - Частоту "идеального" сигнала можно выделить из анализируемого сигнала. А от чего отсчитывается фаза "идеального" сигнала? - Идеальный сигнал полностью аналитический. - Частоту "идеального" сигнала можно выделить из анализируемого сигнала. А от чего отсчитывается фаза "идеального" сигнала? - офицрованный сигнал нарезается на равные кусочки и складывается. - Частоту "идеального" сигнала можно выделить из анализируемого сигнала. А от чего отсчитывается фаза "идеального" сигнала? - Размер кусочка вычисляется аналитически. Нашёлся даже комментатор, который говорил, что ничего такого нет и я в своей статье слишком сгустил краски ))))) Тем не менее. От чего, на ваш взгляд, отсчитывается фаза идеального, и, разумеется, полностью аналитического сигнала? Сдвигается уровень сигнала, сдвигается порог компаратора. Если они в пределах одной микросхемы - этот сдвиг идентичен. Откуда взяться амплитудозависимому джиттеру - решительно непонятно. Первое. Да, идеальных средств измерения не существует. Но это весьма инфантильная позиция: "как же вы вообще что-либо можете измерять, раз всегда есть погрешность???". В реальной жизни вопрос с идеальным триггером, а также с идеальным вольтметром, идеальным штангенциркулем, идеальным секундомером и так далее решается так. Если вам нужна точность X, вы берёте средство измерение примерно в 10 раз точнее X. И считаете, что оно идеальное. И опять же, вот эта интонация "...который в реале не факт что реализуем", заставляет вспомнить нестареющую классику: Я сомневаюсь, что Маркс прав, поэтому он неправ
  9. Ага. Правильно ли я понимаю, что если мы строим глазковую диаграмму, у нас помимо сигнала с данными как бы в комплекте должен отдельно идти синхросигнал? Если так, то верно ли, что разговоры о выделении опорной частоты (либо битрейта, не суть) из сигнала данных - это ну... дичь какая-то, потому, что частота, точнее клок нам как бы уже должен быть отдельно предоставлен? И если интерфейс синхронный, значит джиттер не накапливается. Вот он какой есть, относительно синхроимульсов, такой и есть. Чем тогда обуславливается его наличие? Разным временем перещёлкивания логических элементов? Если у нас, скажем, фиксирована температура и прочие внешние параметры, то почему образуется джиттер? Из-за разного времени прохождения сигнала, скажем, по различным внутренним цепям передающей микросхемы? Но тогда он должен быть по идее детерминирован в нескольких фиксированных состояниях - их количество должно соответствовать количеству возможных путей прохождения сигнала. Или здесь как раз играет роль, что полупроводник логических элементов - нелинейная среда, и при определённых условиях предыдущие сигналы могут воздействовать на последующие? Опять же, чем тогда отличается глазковая диаграмма от простого накопления кривых по триггеру фронта клока? Или глазковая диаграмма - это и есть накопление сигналов по триггеру клока?
  10. Святая корова!!!! А ничего, что сигналы в многопроводной шине (для которой и характерен кроссток) тактируются, по сути, от одного источника тактирования и, да, они могут проникать в соседние линии, но не могут влиять на джиттер, потому, что он у всех линий шины одинаковый? Не люблю играть в шахматы с голубями )))))
  11. И вы сможете описать механизм этого "способен"? ))))))
  12. Иначе говоря, есть некоторые встроенные средства, которые строят глазковую диаграмму. Как именно они работают - вы объяснить не в состоянии (скорее всего не особо знаете), как эти средства ищут фазу сигнала, как нарезают сигнал на куски и как накладывают куски друг на друга - вы не знаете. У вас просто есть некий инструмент, который показывает нечто. Типа как мультиметр с прозвонкой (мы же обычно задаёмся вопросами, каким именно напряжением мультиметр тестирует линию и каково пороговое сопротивление, которое мультиметр уже считает отсутствием контакта), но посложнее и подороже. Вы им пользуетесь, не вдаваясь в подробности. Это хорошо и уж точно не зазорно. Но это не совсем тот опыт, который мне бы нужен.
  13. Которая снимается на векторном анализаторе путём подачи синусов разной частоты. Что проверяется однократной подачей ступеньки лог.0->лог.1 Плюс, канал передачи не способен добавлять сигналу джиттер. Причём здесь глазковая диаграмма?
  14. Ну так этот джиттер не накапливается со временем. Триггер по восходящему фронту SCK, накопление следующего нисходящего фронта SCK. Измерение ширины "размазывания" нисходящего фронта. Всё. Причём здесь глазковая диаграмма и I2S? Да. Именно такие комментарии, не говорящие ничего конкретного, но демонстрирующие, что говорящий что-то где-то слышал я и отшифровываю способом, который вы процитировали.
×
×
  • Создать...