Длительность цикла кэш флоу: Cash flow, денежный поток, кэш флоу, кеш флоу

Содержание

Cash flow, денежный поток, кэш флоу, кеш флоу

Cash flow (читается кеш флоу, пер. денежный поток) – движение денежных средств в рамках компании, проекта или продукта. Имеются в виду свободные деньги на счетах и в кассе (свободный резерв), то есть наиболее ликвидные активы. Выражается итоговым показателем с отрицательным или положительным знаком, который формируется из поступлений и платежей. Очевидно, что положительный кэш флоу лучше отрицательного. Ведь компания, имеющая на руках свободные средства, может оперативно вложить их в бизнес и получить еще больше денег и прибыли. Также это весомый аргумент для банков и кредиторов, рассматривающих возможность предоставления займа.

Cash Flow как форма отчетности

Cash Flow как форма отчетности — это второе значение понятие термина «Кеш Флоу«. Финансовая отчетность предприятия, состоящая из 5ти форм, в том числе включает в себя отчет о движении денежных средств (statement of cash flows).

Это форма #4.

Отчет о движении денежных средств

Она высчитывается как сумма денежных потоков по 3-ем ключевым направлениям деятельности компании:

Операционный денежный поток. Деньги, полученные или потраченные в ходе внутренних (операционных) бизнес-процессов. Рассчитывается как сумма оборотного капитала и притока денежных средств. Если компания платежеспособна, результат будет положительным.

Инвестиционный денежный поток. Деньги, полученные от продажи долгосрочных активов, или потраченные на инвестиционные нужды (строительство, инвестиции).

Финансовый денежный поток. Деньги, полученные от предоставления кредита/займа, или выплаченные в виде дивидендов, возврата займа или выкупа акций. Упрощенно это выглядит следующим образом:

Название Стоимость, у.е.
Операционный cash flow +50
Продажи +40
Погашение дебиторской задолженности +20
Арендные платежи -10
Инвестиционный cash flow -40
Продажа долей +20
Обратный выкуп долей (акций) -10
Вложение в строительство здания -50
Финансовый cash flow +50
Получение кредита +60
Выплата процентов по кредиту -10
ИТОГО +60

В последнем 4-ом разделе Отчета о Движении Денежных Средств указываются существенные неденежные операции, которые впоследствии могут повлиять на величину cash flow.

Наиболее показательным для корпоративных финансов является операционный денежный поток. Он высчитывается по общей формуле:

Операционный Денежный Поток = Чистый доход – Неденежные траты (Амортизация, Обесценение) — Проценты (уплаченные) по займам – Налог на прибыль

Полученное значение будет отражать количество средств, которые компания может потратить на обслуживание своего долга. Cash Flow замеряется за определенный период времени. Как правило, такой период совпадает с выпуском итоговой или промежуточной финансовой отчетности: квартал, полугодие, 9 месяцев, год.

Для чего еще нужен Cash flow?

Без этого показателя не обойтись при составлении бизнес-планов, прогнозов, бюджетов. Также кэш флоу используется в инвестиционном анализе. Зная значение кеш флоу, можно рассчитать показатели NPV (чистая приведенная стоимость) и IRR (внутренняя норма доходности).

Потоки денежных средств — Cash Flows, CF

Потоки денежных средств (Cash Flows) – это приток и отток денежных средств.  Разница между притоком (поступлением) и оттоком (расходованием) денежных средств образует чистый денежный поток (Free Cash Flow), который может быть положительным или отрицательным.

Инвестиции в акции США и IPO

  • Выберите идею. Эксперты уже отобрали лучшие
  • Составьте портфель из акций
  • Попробуйте с $10

Потоки денежных средств группируются в отчете о движении денежных средств (Cash Flow Statement) по трем направлениям от текущей (операционной), инвестиционной и финансовой деятельности компании:

  • Денежный поток от операционной деятельности (Cash Flow From Operating Activities, CFO). Отражает способность компании получать прибыль от своей основной деятельности.
  • Денежный поток от инвестиционной деятельности (Cash Flows From Investing Activities, CFI). Показывает, какой объем денежных средств реинвестируется в бизнес в виде капитальных затрат (Capital Expenditures), а какой идет на вложения в финансовые инструменты и другие компании.
  • Денежный поток от финансовой деятельности (Cash Flows From Financing Activities, CFF). Фиксирует изменения, которые произошли в структуре и стоимости капитала: платились ли дивиденды и за счет каких средств; выкупались ли акции с рынка или выпускались, снизился или возрос объем заемных средств.

Результатом отчета о движении денежных средств является разница между притоком и оттоком наличности – чистый денежный поток (Net Cash Flow, NCF). Величина Net Cash Flow может быть положительной или отрицательной (указывается в круглых скобках).

Отчет о движении денежных средств (Cash Flow Statement)

Пример отчета о движении денежных средств (Cash Flow Statement) с сайта Finance.yahoo. Отток денежных средств указывается в круглых скобках:

Прибыль от текущей деятельности является источником (притоком) денежных средств; убытки означают отток денежных средств из бизнеса.

Прирост активов любого рода подразумевает расходование (отток) денежных средств; сокращение инвестиций в активы является их источником.

Получение кредитов и займов или дополнительная эмиссия акций являются источником денежных средств.

Обслуживание долга, выплата дивидендов и прочие расчеты с кредиторами и собственниками компании приводят к сокращению денежных средств.

Амортизация не формирует денежных средств, а является лишь бухгалтерской составляющей затрат, которая, уменьшая прибыль, занижает объем фактически полученных в составе выручки денежных средств.

Схема основных потоков денежных средств

Хотите копнуть глубже?

Если вы хотите глубже анализировать компании, то стоит научиться читать ее отчетность и анализировать по ней состояние бизнеса. На эту тему у меня есть большой курс с подробным разбором статей каждого отчета (Баланса, Отчета о прибылях и убытках, Отчета о движении денежных средств). Подробней о нем можно узнать здесь.

Денежный поток — Cash Flow. Пример составления

В теории и практике встречается несколько определений денежного потока или потока наличных денег (Cash Flow; CF).

Cash Flow – это количественное выражение денег, имеющихся в распоряжении организации, для руководителей и собственников компании это план будущего движения денежных фондов предприятия во времени либо сводку данных об их движении в предшествующих периодах, а для инвестора cash flow – ожидаемый в будущем доход от инвестиций (с учетом дисконта).

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

Анализ движения денежных потоков – это в основном определение моментов и размеров прихода и расхода денежной наличности.

Главной целью анализа cash flow – является, в первую очередь, анализ финансовой устойчивости и рентабельности предприятия.

Его исходным моментом является расчет денежных потоков, прежде всего, от операционной (текущей) деятельности.

Общепринятое обозначение потока платежей – CF.

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

Анализ денежных потоков проводится при помощи отчета о движении денежных средств. Отчет о движении денежных средств составляется для того, чтобы наглядно увидеть воздействие текущей, инвестиционной и финансовой деятельности организации на состояние ее денежных средств за определенный период и позволяет объяснить изменения денежных средств за этот период.

При составлении отчета о движении средств используются методы: прямой – отражает основные виды денежных поступлений и платежей и косвенный – корректирует чистую прибыль или убыток с учетом влияния операций не денежного характера.

Пример Cash Flow (скачать в формате .xls)

Более подробно анализ денежного потока изложен в учебно-методическом комплексе.

Анализ денежных потоков. Готовая форма в Excel

Денежный поток, кэш-фло, кэш-флоу (от англ. Cash Flow) или поток наличных денег — одно из важнейших понятий современного финансового анализа, финансового планирования и управления финансами предприятия.

Денежный поток представляет собой разницу между денежными поступлениями и выплатами организации за определенный период времени. Чаще всего, за этот временной промежуток принимается финансовый год.

Для оценки изменения, динамики финансового положения предприятия составляется план движения денежных средств предприятия, учитывающий все поступления денежных средств и все платежи. Анализ денежных потоков используется для бюджетирования деятельности предприятия, при составлении бизнес-плана, разработке бюджета движения денежных средств.

Если численное значение денежного потока больше нуля — это показатель притока денежных средств. Если численное значение денежного потока меньше нуля, то имеет место отток денежных средств.

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

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

Почему анализ денежных потоков важен?

Если в компании не уделяется должного внимания анализу и управлению денежным потокам, то ей весьма сложно предсказывать возможные кассовые разрывы. Это приводит к тому, что в конце месяца у нее может не оказаться денег, чтобы оплатить текущие счета за поставки товара, аренду офиса, заработную плату сотрудников и даже на уплату налогов.

Регулярное возникновение кассовых разрывов приводит предприятие к проблемам как с поставщиками товаров и услуг, так и с клиентами. Поставщики, недовольные проблемами с оплатой, отменяют скидки, приостанавливают отгрузку товаров. Возникает товарный дефицит, клиенты не могут получить востребованный товар, и по этой причине не спешат оплатить счета за уже произведенные отгрузки и оказанные услуги. Растет дебиторская задолженность, что еще больше усугубляет финансовые проблемы с поставщиками. Возникает «замкнутый круг.» Такая ситуация резко сказывается на обороте предприятия, снижает его прибыльность и рентабельность.

Таким образом, неплатежеспособность предприятия возникает в тот момент, когда денежный поток становится отрицательным. Важно, что такая ситуация может возникнуть даже в том случае, когда формально предприятие остается прибыльным. Именно с этим связаны проблемы доходных, но неликвидных компаний, стоящих на грани банкротства.

Расчет денежных потоков в Excel

Какими же средствами автоматизации лучше воспользоваться для анализа и управлении денежными потоками предприятия? На этот вопрос каждый владелец предприятия отвечает себе сам.

Существует выбор между дорогими специализированными программами для учета движения денежных средств и созданием приложения для учета и анализа денежных потоков под свои требования при помощи Excel. Функционально большой разницы между этими вариантами нет.

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

У решений по учету денежных потоков, разработанных в Excel, перечисленные недостатки отсутствуют. Зато несомненными плюсами является гибкость решений, возможность оперативного изменения под изменяющиеся условия учета, возможность внесения небольших изменений самим пользователем, универсальность табличного редактора Excel. Нет такой задачи по учету, которую невозможно реализовать средствами Excel !

Скачайте бесплатно простое решение по учету и анализу денежных потоков в Excel. В файле Вы увидите готовую таблицу для учета и анализа денежных потоков ООО, находящегося на УСН.

Любые изменения в статьи доходов и расходов Вы можете или внести сами, или обратиться за помощью к эксперту по Excel.

Так выглядит таблица учета и анализа денежного потока: Скачать бесплатно


<div><img src=»//mc.yandex.ru/watch/21244903″ alt=»» /></div>

Денежные потоки инвестиционного проекта — МегаЛекции

Инвестиционный проект может быть представлен как модель кругооборота индивидуального капитала. В ней при помощи широко известных в зарубежной экономике понятий движения реальных денежных средств в форме потока («кэш-флоу») описываются все факторы и этапы жизненного цикла: от его начала — авансирования капитала для создания объекта предпринимательской деятельности и до его завершения, ликвидации. Иными словами, поступательное движение денежных средств в этих граничных временных рамках в форме затрат и поступлений опосредствуют работы и процедуры по разработке и реализации инвестиционного проекта, рассмотренные в гл. 2.

Для характеристики явлений, отражающих движение денежных средств, мы будем оперировать понятием «денежный поток», принятым в отечественной практике инвестиционного проектирования с начала 90-х гг. прошлого века.

Денежный поток ИП — это денежные поступления и (или) платежи, порождаемые проектом на отдельных шагах на всем протяжении расчетного периода.

Понятия «расчетный период» и «шаг расчета» требуют пояснения.

Нам уже известно, что вложения средств в развитие производства в отличие от вложений в торговлю или валютные операции, требуют расчета не на дни и недели, а на годы. Эти вложения имеют долговременный характер. Инвестору надо знать, как будут складываться в перспективе условия, формирующие расходы и доходы в рамках проектируемого производства, оценить их влияние на эффективность.

Временной, достаточно длительный период, на протяжении которого необходимо отслеживать денежные потоки с целью определения в конечном счете экономической эффективности проекта, мы будем называть расчетным периодом. Он охватывает временной интервал от начала разработки проекта и до его прекращения (жизненный цикл проекта).

Началом расчетного периода может быть дата начала вложения средств в проектно-изыскательские работы или дата вложения средств в создание проектируемого объекта (в создание основных фондов).



Момент прекращения реализации проекта может быть следствием ‘следующих причин:

• исчерпания сырьевых запасов и других ресурсов;

• прекращения производства в связи с завершением жизненного цикла производимой продукции;

• износа основных фондов (чаще всего технологического оборудования).

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

Время течет непрерывно, а наши возможности по отслеживанию динамики показателей проекта ограничены, поэтому возникает необходимость разбиения срока жизни проекта на’ короткие промежутки времени — шаги (интервалы) планирования.

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

Шаги расчета определяются их номерами (0, 1,…). Продолжительность шага измеряется в годах или долях года и отсчитывается от фиксированного момента т0 = 0, принимаемого за базовый. Обычно из соображения удобства в качестве базового принимается момент начала или конца нулевого шага. При сравнении нескольких проектов базовый момент для них выбирают один и тот же.

Длительность шага планирования зависит в первую очередь от возможности подготовки качественных исходных данных и от стадии расчета. При интервалах планирования в один месяц происходит лавинообразное усложнение подготовки исходной информации по сравнению с годовым или квартальным интервалами. Годовой интервал планирования может использоваться на стадии предварительной проработки проекта. Для целей разработки окончательного ТЭО приемлемы более короткие интервалы, хотя бы для первого года освоения нового производства.

Значение денежного потока обозначается через Ф(t), если оно относится к моменту времени t, или через Ф(т), если оно относится к шагу т.

На каждом шаге расчетного периода движение денежных средств объективно отражается по двум направлениям:

• притокам, равным размеру денежных поступлений на этом шаге;

• оттокам, равным затратам или платежам на этом шаге.

Разность между притоком и оттоком — сальдо — отражает активный баланс, или эффект.

Для экономической оценки ИП используется также понятие «накопленный денежный поток». Его применяют для характеристики всех типов (видов) денежных потоков (притока, оттока, сальдо) за данный и все предшествующие шаги: накопленный отток, накопленное сальдо.

Денежные потоки обычно описываются таблицей, в которой для каждого шага расчета помещается свой элемент денежного потока (табл. 4.1). Притоки заносятся в таблицу со знаком «+», а оттоки — со знаком «-».

Таблица 4.1. Денежные потоки

№ строки Значение денежного потока   № шага расчетного периода (m)
Приток
Отток -50 -5 -10 -15 -15 -15
Сальдо (стр. 1 — стр. 2) -50
Накопленное сальдо -50 -45 -35 -15

Примечание. Накопленное сальдо на нулевом шаге равно значению сальдо на этом же шаге, для последующих шагов — накопленное сальдо на предыдущих шагах плюс сальдо на данном шаге.

При формировании потоков реальных денежных средств проекта необходимо соблюдать ряд методологических принципов.

Первый. Денежные потоки должны адекватно отражать экономические интересы участников инвестиционного процесса. Поэтому для оценки каждого вида эффективности должен быть определен специфический перечень (состав) притоков щоттоков по тем сферам деятельности, которые их касаются (операционной, инвестиционной и финансовой).

Второй. Методика расчета каждой статьи денежного потока по шагам расчетного периода должна отражать требования действующего хозяйственного механизма национальной экономики, закрепленные в законодательных актах, а также принятой на предприятии (или принятой для нового проектируемого объекта) учетной политики.

Третий. В пределах выбранного шага расчета (год, квартал) каждый элемент денежного потока должен быть отнесен в зависимости от его проявления во времени к одному из трех возможных состояний: к началу шага (например, инвестиции), концу шага (например, перечисление долга) или равномерным поступлениям, затратам (например, выручка от реализации).

В зависимости от задач планирования и анализа инвестиционной деятельности потоки можно группировать по разным направлениям. При разработке финансово-инвестиционного бюджета, в котором отражается финансово-экономический процесс создания и функционирования объекта предпринимательской деятельности, реальные денежные потоки по проекту группируют по 3 сферам деятельности: инвестиционной, операционной и финансовой (см. табл. 5.4).

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

Методология формирования реальных денежных потоков («кэш-флоу») широко применяется на предприятиях развитых в экономическом отношении стран. В нашей экономике ее начали использовать сравнительно недавно, главным образом при разработке ТЭО инвестиционного проекта.

В подп. 5.2.2.8 методология «кэш-флоу» будет нами рассмотрена применительно к разработке системообразующего раздела экономической части инвестиционного проекта — финансово-инвестиционного бюджета и обоснованию условий финансовой реализуемости намеченного проекта.


Рекомендуемые страницы:


Воспользуйтесь поиском по сайту:

Методы измерения эффектов инновационной деятельности по фазам жизненного цикла инноваций (Бойко В.П.1, Фалько С.

Г.11 Московский государственный технический университет им. Н.Э. Баумана) / Вопросы инновационной экономики / № 3, 2020

Цитировать:
Бойко В.П., Фалько С.Г. Методы измерения эффектов инновационной деятельности по фазам жизненного цикла инноваций // Вопросы инновационной экономики. – 2020. – Том 10. – № 3. – С. 1101-1110. – doi: 10.18334/vinec.10.3.110614.

Эта статья проиндексирована РИНЦ, см. https://elibrary.ru/item.asp?id=44082101
Цитирований: 2 по состоянию на 06.02.2021

Аннотация:
В настоящее время не сформировалась общепризнанная теория и методология измерения и оценки эффектов, возникающих в процессе инновационной деятельности. Поэтому проблематика статьи несомненно актуальна как для теории, так и для практики инновационного менеджмента. В статье анализируется три периода эволюции методов измерения эффектов инновационной деятельности. Рассмотрены основные положения и подходы, а также методы и субъекты оценки эффектов по фазам жизненного цикла инновации. Рассмотрены показатели оценки эффективности по основным составляющим инновационного процесса: вход, процесс, выход и результат.

Ключевые слова: инновации, инновационные процессы, методы измерения эффектов, показатели эффективности и результативности, фазы жизненного цикла

Введение

Одним из центральных вопросов менеджмента инноваций был и остается вопрос измерения и оценки эффектов от реализации инновации. Ответ на вопрос «Была ли успешна инновация или нет?» необходимо искать в нескольких направлениях, поскольку инновационная деятельность включает стратегические, технические, экономические, экологические, социальные и пр. компоненты. Многочисленные эмпирические исследования показывают, что подходы к оценке эффектов инновационной деятельности существенно эволюционировали за последние 30–40 лет.

Тематика инновационного менеджмента не обижена вниманием исследователей и практиков, тем не менее можно согласиться с утверждением ряда авторов, что общепринятой теории и методологии оценки эффектов инновационной деятельности пока не выработано.

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

Эволюция методов измерения эффектов инноваций

Условно можно выделить три периода эволюции методов измерения эффектов инновационной деятельности.

Первый период: «Традиционные методы измерения».

Для этого периода характерно применение финансово-экономических методов, например методов расчета прибыли, ROI, Кэш-Флоу, производительности и т.п. В качестве исходных данных для расчета финансово-экономических показателей выступали данные из управленческого учета. К недостаткам традиционных методов измерения следует отнести то обстоятельство, что они измеряют уже прошедшие действия и не оказывают влияние на ход инновационного процесса. Более подробно недостатки традиционных методов рассмотрены в работе [6] (Ahmed, Shepherd, 2010).

Второй период: «Нетрадиционные методы измерения».

Данный период включает методы измерения, компенсирующие недостатки традиционных методов. Эти методы условно можно отнести к так называемым процессным методам, позволяющим измерять показатели инновационного процесса. Таким образом, «нетрадиционные методы измерения» способствуют более тесной связи с операционным процессом и, следовательно, позволяют предпринимать действия практически в режиме онлайн. Благодаря этим методам становится возможным оперативный контроль и улучшение инновационного процесса, а не только мониторинг полученных в прошлом результатов. Описание методов расчета показателей инновационного процесса подробно рассмотрены в работах [11, 12] (Moller, Menninger, Robers, 2011; Moller, Schmalzle, 2008).

Третий период: «Интегрированные методы измерения».

Разработка этих методов относится к началу 90-х годов прошлого века. В основу методов заложен принцип интеграции финансово-экономических и процессных показателей. Эти методы были разработаны с целью проведения анализа эффектов инновационной деятельности с различных точек зрения. К числу наиболее известных интегрированных методов измерения можно отнести Balanced Scorecard (система сбалансированных показателей), Strategic measurment and reporting technique (методы стратегических измерений и отчетности) и др. В литературе наряду с термином «интегрированные методы измерения» часто встречается термин «интегрированные системы измерения» [6] (Ahmed, Shepherd, 2010).

Основные положения и подходы к оценке эффектов по фазам

жизненного цикла инновации

В работах [1, 2, 3] (Boyko, 2017; Boyko, 2019; Boyko, Falko, 2019) детально рассмотрен подход к структурированию процесса разработки нового продукта, начиная с формулирования концепции разработки нового продукта и заканчивая фазой диффузии и выхода на рынок.

Согласно мнению известного специалиста в области проектного менеджмента профессора Madauss [10] (Madauss, 2017), инновационный процесс должен включать следующие фазы жизненного цикла, такие как идея и концепция инновации, прототипирование, начало серийного производства и эксплуатация.

Ниже приведены основные положения и подходы к оценке эффектов инновационной деятельности [5, 9] (Falko, 1999; Hauschildt, Salomo, 2011):

— измерение эффектов целесообразно проводить не только на уровне отдельного предприятия, но и по отраслям, в том числе и смежным;

— измерению подлежат как стоимостные, так и научно-технические, а также социально-экологические эффекты;

— в качестве методов измерения эффектов целесообразно использовать количественные и качественные методы, а также экономико-математические модели;

— эффекты следует измерять на каждой фазе, чтобы принимать решение о переходе на следующую фазу или о прекращении или реинжиниринге инновационного процесса;

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

Методы и субъекты измерения эффектов по фазам жизненного

цикла

Предлагается реализовать следующий принцип: переход к последующей фазе жизненного цикла целесообразен, если вероятность успешной реализации инновации превышает заданное эндогенно некоторое пороговое значение. Например, если вероятность успешной реализации i-стадии жизненного цикла < 70%, то процесс следует прекратить или радикально пересмотреть. Вероятность 70–80% предполагает поиск нового варианта с улучшенными характеристиками. Если вероятность успешной реализации > 85%, то рекомендуется переход на следующую стадию (i+1) жизненного цикла [5] (Falko, 1999).

В таблице 1 представлены основные фазы жизненного цикла, методы измерения и субъекты оценки.

Таблица 1

Фазы жизненного цикла, методы измерения и субъекты оценки

Фазы жизненного цикла
Методы измерения
Субъекты оценки
1. Инновационная идея
— Мнение экспертов в предметной области инновационной деятельности
— Экспертные методы
— Руководство предприятия
— Инженеры
— Экономисты
— Маркетологи
2. Планирование инновационного процесса
— Планирование сроков с помощью графических методов
— Планирование затрат на основе методов прогнозирования
— Инженерные службы
— Приглашенные эксперты из консалтинговых
фирм
— Экономисты
— Маркетологи
3. Создание прототипа
— Экспериментальные методы
— Статические и динамические методы оценки эффектов
— Объемное моделирование (3D)
— Менеджмент предприятия
— Маркетологи
— Инженерные службы
— Потенциальные инвесторы
— Внешние консультанты
4. Освоение производства и возможности расширения параметрического
ряда
— Графики Ганта, PERT, модифицированные сетевые графики
— Методы оценки себестоимости
— Методы оценки маркетинговых показателей инновации
— Специалисты в области организации производства
— Специалисты в области расчетов затрат
— Маркетологи
5. Диффузия инновации
— Логистические кривые
— Кривые опыта
— Прогнозные модели по объемам и срокам продаж
— Специалисты в области логистики
— Маркетологи
— Специалисты в области финансов и экономики
Источник: составлено авторами на основе работ [2, 4, 5, 9] (Boyko, 2019; Karminskiy, Falko, 2013; Falko, 1999; Hauschildt, Salomo, 2011)

Показатели эффективности и результативности

инновационных процессов

Показатели выполняют различные функции, которые нужны для успешного достижения цели инновационного процесса. В настоящее время нет единых рекомендаций относительно выбора «правильных» показателей с учетом специфики деятельности предприятия и (или) вида инновации [11] (Moller, Menninger, Robers, 2011). Приведенные ниже показатели структурированы по основным составляющим инновационного процесса: вход (Input), процесс (Process), выход (Output) и результат (Outcome).

В таблице 2 представлены наиболее значимые показатели входа (Input) в качестве абсолютных и относительных величин. Эти показатели характеризуют состояние основных ресурсов предприятия с точки зрения инновационного потенциала.

Таблица 2

Показатели входа (Input)

Показатели по ресурсам
Абсолютные показатели
Относительные показатели
Персонал
- Количество сотрудников в подразделениях НИОКР
- Затраты на персонал в подразделениях НИОКР
- Доля сотрудников НИОКР в общем количестве сотрудников предприятия
- Доля затрат на персонал НИОКР от общих затрат на персонал
Материалы и оборудование
- Количество исследовательского оборудования
- Затраты на материалы и оборудование
- Доля материальных затрат в общих затратах на НИОКР
Know-how
- Количество инновационных идей
- Уровень подготовки и опытности сотрудников
- Затраты на переподготовку сотрудников
- Участие в выставках и конференциях
- Затраты на повышение квалификации на одного сотрудника подразделения НИОКР
Затраты
- Суммарные затраты предприятия на проведение НИОКР
- Доля затрат на НИОКР относительно годового оборота предприятия
- Затраты на одного сотрудника подразделения НИОКР
Источник: составлено авторами на основе работ [7, 8, 11, 12] (Boutellier, Volker, Voit, 1999; Gaubinger, Rabl, 2015; Moller, Menninger, Robers, 2011; Moller, Schmalzle, 2008).

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

В таблице 3 приведены примеры показателей собственно инновационного процесса (Process). Чаще всего инновационный процесс реализуется в рамках методологии проектного менеджмента, поэтому значительная часть показателей характеризует качество проектного управления.

Таблица 3

Показатели процесса (Process)

Продвижение проекта
Затраты
Сроки
Качество
- Количество выполненных этапов
- Количество завершенных рабочих пакетов
- Доля выполненных этапов (%)
- Отклонение по затратам
- Процент превышения фактических затрат
- Доля завершенных рабочих пакетов с превышением затрат
- Суммарные затраты на проект
- Процент отклонения по срокам
— Среднее превышение сроков
- Средняя длительность процесса
- Сроки выхода на рынок
- Количество изменений до выхода в серию
- Процент ошибок
- Затраты на исправление ошибок
- Количество изменений после выхода в серию
Источник: составлено авторами на основе работ [7, 8, 11, 12] (Boutellier, Volker, Voit, 1999; Gaubinger, Rabl, 2015; Moller, Menninger, Robers, 2011; Moller, Schmalzle, 2008).

Применение приведенных в таблице 3 показателей имеет смысл, если инновационный проект четко структурирован и спланирован как по видам работ (рабочим пакетам), так и по срокам и затратам. Важное значение имеют показатели качества инновационного процесса. Чем больше было допущено ошибок в области формирования требований, прогнозирования сроков и затрат, тем больше будут затраты на исправления. Исправления на поздних стадиях инновационного процесса существенно снижают показатели результативности и эффективности (Outcome).

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

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

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

Таблица 4

Показатели выхода (Output)

Сферы проявления
Абсолютные показатели
Относительные показатели
Генерирование новых знаний
- Количество новых идей и предложений по исследованию
- Количество изобретений
и патентов
- Количество публикаций в индексируемых журналах
- Количество премий и признаний в профессиональном сообществе
- Средние затраты на публикацию
- Средние затраты на патент
- Количество патентов на одного сотрудника
- Доля затрат на патенты от суммарных затрат на инновационный процесс
Разработка продукта/
процесса
- Количество созданных прототипов
- Количество инновационных продуктов/процессов
- Технические характеристики продукта/процесса
- Снижение экологической нагрузки
- Удовлетворенность клиентов
- Количество стандартных деталей и узлов в изделии
- Доля новых продуктов в суммарной продуктовой программе
- Количество новых продуктов относительно затрат на НИОКР
- Доля успешно реализованных инновационных проектов
- Доля неуспешных инновационных проектов
Источник: составлено авторами на основе работ [7, 8, 11, 12] (Boutellier, Volker, Voit, 1999; Gaubinger, Rabl, 2015; Moller, Menninger, Robers, 2011; Moller, Schmalzle, 2008).

Создание нового продукта или процесса не относится к самоцели предприятия. С помощью инноваций предприятие может зарабатывать деньги и оставаться длительное время конкурентоспособным на рынке.

В таблице 5 приведены примеры прямых и косвенных показателей инновационной деятельности в абсолютном и относительном выражении.

Таблица 5

Показатели результата/эффекта (Outcome)

Вид результата/
эффекта
Абсолютные показатели
Относительные показатели
Прямой
- Рост годового оборота
- Показатель ROI и EVA
- Cash-Flow
- Доходы от продажи лицензий
- Снижение затрат на производство
- Рост доли рынка
- Сокращение критической программы
- Период окупаемости и т. п.
- Доля оборота новой продукции в общем обороте предприятия
- Оборот на одного сотрудника подразделения НИОКР
- Доля оборота от продажи защищенных патентов
- Доля пробыли от новой продукции в общей прибыли предприятия
Косвенный
- Сокращение объемов продаж у конкурентов
- Рост затрат у конкурентов на аналогичную продукцию
- Снижение доли рынка у конкурентов
- Снижения уровня удовлетворенности клиентов у конкурентов

Источник: составлено авторами на основе работ [9, 11, 12] (Hauschildt, Salomo, 2011; Moller, Menninger, Robers, 2011; Moller, Schmalzle, 2008).

Перспективное направление исследований в области измерения и

оценки эффектов инновационной деятельности

В качестве перспективного направления дальнейших исследований в области измерения и оценки эффектов инновационной деятельности целесообразно рассматривать разработку так называемого инновационного монитора. Его построение предлагается осуществлять на основе концепции системы сбалансированных показателей (Balanced Scorecard). Предлагается рассмотреть 5 перспектив: стратегическая перспектива, технологическая перспектива, рыночная перспектива, финансовая перспектива и процессная перспектива. По каждой из перспектив должны быть предложены желаемые значения показателей, обеспечивающих конкурентные преимущества инновационному продукту и (или) процессу.

Заключение

В настоящее время нет удовлетворительного решения проблемы измерения и оценки эффектов инновационной деятельности.

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

Для формирования показателей эффективности и результативности инновационного процесса предложено структурирование по основным его составляющим: вход (Input), процесс (Process), выход (Output) и результат (Outcome). Обосновано применение абсолютных и относительных показателей для каждой составляющей инновационного процесса, что позволяет проводить процедуру бенчмаркинга.

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

1. Бойко В.П. Разработка организационно-управленческого механизма построения системы контроллинга инновационных проектов на предприятиях ракетно-космической промышленности: диссерт… канд. экон. наук.- М.: МГТУ им. Н.Э. Баумана, 2017. 147 с.
2. Бойко В.П. Фазовый подход к структурированию процесса разработки нового продукта // Контроллинг. 2019. №1(61). С. 36-42.
3. Бойко В.П., Фалько С.Г. Модернизация фазового подхода к структурированию инновационного процесса // Друкеровский вестник. 2019. №1(27). С.38-45.
4. Контроллинг на промышленном предприятии: Учебник /Под ред. А.М. Карминского, С.Г. Фалько. М.: ИД “ФОРУМ”: ИНФРА-М, 2013. 304 с.
5. Фалько С.Г. Управление инновационными процессами на предприятии в условиях высокой неопределенности и динамики рынков (теоретико-методологические аспекты): диссерт…. докт. экон. наук. — М.: МГТУ им. Н.Э. Баумана, 1999. 331 с.
6. Ahmed K., Shepherd C. Innovation management: context, strategies, systems and processes. London: Pearson Education Limited, 2010. 552 p.
7. Boutellier R.,Volker R.,Voit E. Innovationscontrolling: Forschungs-und Entwicklungsprozesse gezielt planen und steuern. Munchen; Wien: Carl Hanser Verlag, 1999. 244 s.
8. Gaubinger K., Rabl M. Kenzahlen fur den Bereich F&E und Innovationen / Im Sammelband «Handbuch der betriebswirtschaflichen Kennzahlen». Wien: Linde Verlag, 2015. S.337-353.
9. Hauschildt J., Salomo S. Innovationsmanagement. 5-Auflage. Munchen: Franz Vahlen Verlag, 2011. 410 s.
10. Madauss B.-J. Projektmanagement. Theorie und Praxis aus einer Hand. 7., neu bearbeitete Auflage.- Berlin: Springer Vieweg Verlag, 2017. 914 s.
11. Moller K., Menninger J., Robers D. Innovationscontrolling: erfolgreiche Steuerung und Bewertung von Innovationen. Stuttgart: Schaffer Poeschel Verlag, 2011.174 s.
12. Moller K., Schmalzle H. Messung und Steuerung im Innovationsprozess. // Research Paper №2. Gottingen, 2008.S.18-38.

BugaBooks — Финансовый менеджмент

1.4. управление денежными потоками

 

Одно из направлений управления финансами предприятия — это эффективное управление его потоками денежных средств. Полная оценка финансового состояния предприятия невозможна без анализа его денежных потоков. В настоящее время большинство предприятий (более 80\%) имеют недостаток оборотных средств. Одна из задач управления денежными потоками заключается в выявлении взаимосвязи между потоками денежных средств и прибылью, т.е. является ли полученная прибыль результатом эффективных денежных потоков или это результат каких-либо других факторов.

Существуют такие понятия, как «движение денежных средств» и «поток денежных средств»,

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

Управление потоками денежных средств объединяет все это и предполагает анализ этих потоков, учет движения денежных средств, разработку плана движения денежных средств.

В мировой практике денежный поток обозначается понятием «кэш фло» (cash flow), хотя буквальный перевод этого термина — поток наличности. Денежный поток, в котором отток превышает приток, называется «негативный кэш фло» (negative cash flow), в противном случае     это «позитивный кэш фло» (positive cash flow).

Применяется также понятие «дисконтированный или приведенный денежный поток». Слово дисконт (discount) означает скидка, следовательно, дисконтирование означает приведение будущих денежных потоков в сопоставимый с настоящим временем вид.

Одним из факторов, влияющих на денежные потоки предприятий, является величина так называемого финансового цикла. Это время, в течение которого их денежные средства вложены в созданные запасы (с момента их оплаты), незавершенное производство, готовую продукцию и дебиторскую задолженность, с учетом времени обращения кредиторской задолженности, т.к. она компенсирует отвлечение средств в дебиторскую задолженность. Таким образом, время финансового цикла можно рассчитать по следующей формуле:

ФЦ = ВОЗЗ + ВОД — ВОК,

где ФЦ — время финансового цикла;

ВОЗЗ — время обращения запасов и затрат;

ВОД — время обращения дебиторской задолженности;

ВОК — время обращения кредиторской задолженности. В свою очередь

где AIIматер. ср — материальные оборотные активы (запасы и затраты, включая готовую продукцию), средняя величина;

ДЗср — средняя величина дебиторской задолженности, относящейся к производству;

КЗср — средняя величина кредиторской задолженности, относящейся к производству;

Сп — полная себестоимость реализуемой продукции;

В — выручка от реализации продукции.

 

Финансовый цикл включает в себя, таким образом, время нахождения оборотных средств в двух стадиях кругооборота — производственной и товарной и не включает время их нахождения в денежной стадии.

Схематично расчет финансового цикла представлен на рис. 1.1.

Рис. 1.1. Расчет финансового цикла

 

В случае, если предприятие выдает или получает авансы, оно должно скорректировать финансовый цикл на время их оборота.

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

Как уже отмечалось, денежные потоки связаны с притоками и оттоками денежных средств.

Необходимость деления деятельности предприятия на три ее вида объясняется ролью каждого и их взаимосвязью. Если основная деятельность призвана обеспечивать необходимыми денежными средствами все три вида и является основным источником прибыли, то инвестиционная и финансовая призваны способствовать, с одной стороны, развитию основной деятельности, а с другой — обеспечению ее дополнительными денежными средствами.

В результате анализа денежных потоков предприятие должно получить ответ на главные вопросы: откуда поступают денежные средства, какова роль каждого источника и на какие цели они используются. Выводы следует делать как в целом по предприятию, так и по каждому виду его деятельности: основной, инвестиционной и финансовой. На этой основе делаются выводы об источниках и об обеспеченности каждого вида деятельности необходимыми денежными средствами. В результате принимаются решения по поводу обеспечения превышения поступления денежных средств над платежами, источников оплаты текущих обязательств и инвестиционной деятельности, достаточности получаемой прибыли и другие.

Анализ денежных потоков связан с выяснением причин, повлиявших на:

увеличение притока денежных средств;

уменьшение их притока;

увеличение их оттока;

уменьшение их оттока.

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

Анализ потоков денежных средств должен осуществляться как на основе отчетных, так и плановых показателей. В качестве отчетных показателей используются данные первичного учета и регулярной отчетности предприятия. Плановые показатели движения денежных потоков предприятия рассчитывают в виде оперативного финансового плана, так называемого платежного календаря. Он разрабатывается на месяц с периодичностью в 5, 10 или 15 дней.

Особенность платежного календаря состоит в том, что предприятие сначала определяет все свои денежные расходы на месяц, а затем изыскивает денежные ресурсы для покрытия расходов, если денежных доходов окажется недостаточно. Планирование возможных платежей и источников, их покрытия связано с ежедневным контролем за поступлением выручки от реализации продукции и за оплатой поступающих материальных ценностей как основными направлениями денежных потоков. Разработка экономически обоснованного платежного календаря — одно из обязательных условий эффективного управления денежными потоками. Оно позволяет обеспечить предприятие необходимыми денежными средствами, выявить возможности увеличения выручки от реализации продукции и прибыли, повысить эффективность структуры используемых средств.

На ряде предприятий ведётся специальный журнал, в котором отражаются все показатели платежного календаря в динамике, а также показатели отчета о движении денежных средств.

План движения денежных средств может быть составлен на любой период. В частности, при разработке бизнес-плана он рассчитывается как на год, так и на несколько лет.

Глубина анализа денежных потоков достигается также и тем, что наряду с анализом потоков всех денежных средств должен быть сделан анализ потоков отдельно собственных и заемных средств. Одним из вариантов может быть анализ потоков на основе финансовых результатов, т.е. без учета валовых поступлений и платежей предприятия. В этом случае к доходам и поступлениям средств относятся прибыль, в том числе от прочей реализации, все виды доходов от внереализационных операций, начисленная амортизция, все виды долгосрочных кредитов и займов, арендная плата, целевое финансирование из бюджета и внебюджетных фондов, безвозмездная помощь и прочее. К расходам и отчислениям средств относятся платежи в бюджет, отчисления в различные фонды, на благотворительные цели, выплачиваемые дивиденды, долгосрочные инвестиции и финансовые вложения, погашение долгосрочных кредитов и займов и уплата процентов по ним, пополнение оборотных средств, уценка товаров, отчисления в различные резервы и прочие. Таким образом, сюда не включается выручка от реализации продукции и затраты, включаемые в себестоимость.

Существуют два метода расчета потока денежных средств: прямой и косвенный. Принципиальные отличия этих методов вытекают из принципов расчетов. При прямом методе расчет потоков осуществляется на основе счетов бухгалтерского учета предприятия, а при косвенном — на основе показателей баланса предприятия (Ф-1) и отчета о финансовых результатах (Ф-2).

В результате при прямом методе предприятие получает ответы на вопросы относительно притоков и оттоков денежных средств и их достаточности для обеспечения всех платежей. Косвенный метод показывает взаимосвязь различных видов деятельности предприятия, а также влияние на прибыль изменений в активах и пассивах предприятия. Кроме того, основой расчета при прямом методе является выручка от реализации продукции, а при косвенном — прибыль.

При прямом методе поток денежных средств на конец периода определяется как разница между всеми притоками средств на предприятии по трем видам деятельности и их оттоками. Остаток денежных средств на конец периода определяется как их остаток на начало с учетом их отока за данный период.

При косвенном методе основой для расчета являются нераспределенная прибыль, амортизация, а также изменения активов и пассивов предприятия.

При этом увеличение активов уменьшает денежные средства предприятия, а увеличение пассивов увеличивает, и наоборот.

Целям более полного представления о денежных потоках служат так называемые матричные балансы за определенный период времени (квартал, год и т.д.). В них в числителе — показатели на начало года, а в знаменателе — на конец, а также изменения за год (+, -). В результате можно получить ответы на ряд вопросов:

Какова взаимосвязь между активами и пассивами предприятия?

Какие конкретные изменения произошли в источниках финансирования активов и в направлениях использования пассивов?

Какие решения следует принять в целях оптимизации активов и пассивов?

В отчетности российских предприятий имеются формы, отражающие движение денежных средств. Это:

отчет о движении капитала — форма № 3;

отчет о движении денежных средств — форма № 4;

движение заемных средств — часть приложения к бухгалтерскому балансу, форма № 5.

Управление денежными потоками — одно из важнейших направлений управления финансами предприятия.

 

ВОПРОСЫ ДЛЯ САМОКОНТРОЛЯ

 

Каковы сущность и роль финансов предприятий в рыночной экономике?

Дайте характеристику финансовым отношениям предприятий.

Каковы денежные фонды предприятий?

Что такое чистые активы предприятия?

Что входит в понятие «денежный поток предприятия»?

Какие притоки и оттоки характерны для основной, инвестиционной и финансовой деятельности предприятий?

Каковы основные условия и пути укрепления финансов предприятий?

 

CacheFlow: жизненный цикл Сделки венчурного капитала

1. Рождение CacheFlow Inc.

13 марта 1996 г. — Во-первых, идея. Затем ангелы … Все хотят более быстрого доступа к веб-страницам. Майкл Малкольм, бывший президент и главный исполнительный директор Network Appliance, представляет новый компания, чтобы сделать именно это. Идея порождает CacheFlow Inc. Ключ: предоставить локальное хранилище или «кэширование» — отсюда и имя — часто используемых интернет-данных через устройство, добавленное к компьютерные сети клиентов, которые помогают им получить доступ к наиболее часто используемым веб-сайтам.Он и партнер Джо Прусковски привлекают 1 млн долларов в виде кредитов на начальный капитал от дюжина инвесторов-ангелов в Сан-Франциско и Сиэтле.

августа 1996 — Хотя в CacheFlow есть наличными, венчурные фирмы стучат в его двери, пытаясь получить часть сделки. Benchmark Capital Partners «действовали довольно агрессивно», — сказал г-н Малкольм. вспоминает.

2. Первое финансирование от венчурной компании

Октябрь 1996 г. — Бенчмарк занимает возглавить первое венчурное финансирование, купив 3.2 миллиона Series A привилегированные акции по 87,5 цента каждая. За 2,8 миллиона долларов Benchmark получает около 25% CacheFlow. Бизнес-ангелы превращают свои ссуды в Серию А. акции по той же цене. Вместе основатели, бизнес-ангелы и горстке сотрудников принадлежат оставшиеся 75% акций CacheFlow. Деньги будет использоваться для найма менеджеров и разработки продукта.

Январь 1997 — Стюарт Филлипс, а старший исполнительный директор Cisco Системы , входит в состав совета директоров в качестве внешнего директора, приглашенного г-ном.Малькольм, который работал у мистера Филлипса консультантом в конце 1980-х годов. Шесть месяцев спустя г-н Филлипс покидает Cisco, чтобы присоединиться к венчурным партнерам США. венчурная фирма.

Июнь 1997 — г-н Прусковский уходит в качестве президента и генерального директора CacheFlow по личным причинам, но сохраняет 58 572 акции серии А. Г-н Малькольм становится временным генеральным директором.

Кэш инструкций — обзор

3.4.1.1.1 Микроархитектура

Конвейер имеет шесть основных этапов: выборка инструкций (этап F), этап планирования потоков (этап S), этап перехода и декодирования (этап D), Этап выполнения (E-этап), этап доступа к памяти (M-этап) и, наконец, этап обратной записи (W-этап).Блок выборки инструкций имеет буфер трансляции адресов инструкций, кэш инструкций и конечный автомат планирования потоков. Буфер трансляции адресов инструкций и кэш инструкций совместно используются аппаратными потоками. В основном используются две схемы планирования. Планирование потоков с малой задержкой, используемое в CASPER, позволяет передавать инструкции из готовых потоков на этап D в каждом тактовом цикле. Схема планирования с большой задержкой позволяет одному активному потоку продолжать свое выполнение до тех пор, пока оно не будет завершено или прервано потоками с более высоким приоритетом.

Этап декодирования реализует полный декодер набора команд SPARCV9; он также поддерживает специальный набор гиперпривилегированных регистров и инструкций, используемых гипервизором — уровень виртуализации, реализованный в процессорах UltraSPARC.

Блок Execution имеет 64-битное RISC ALU, целочисленный умножитель и делитель. Блок накопителя нагрузки (LSU) состоит из двух модулей, M-ступени и W-ступени. Он также включает в себя буфер трансляции данных (D-TLB) и кэш данных (D $). Размер D-TLB и задержка попадания, а также размер D $, ассоциативность, размер блока и задержка попадания также настраиваются в CASPER.Список пропущенных инструкций контролирует путь пропуска I $, в то время как путь D $ контролируется через очередь промахов загрузки (LMQ), которая поддерживает промахи кэша отдельно для каждого потока и аналогична по организации UltraSPARC T1.

В CASPER мы можем измерить CPI (на поток и на ядро). Сообщаемые статистические события — это остановки конвейера, время ожидания потоков из-за списка пропущенных инструкций и очереди ошибок загрузки, время ожидания потоков из-за переполнения буфера хранилища, пропуски I-Cache и D-Cache и т. Д.Casper использует инструмент Cacti для отчета о задержках попадания в кеш и времени доступа [42].

Лекция 8: Больше кешей, виртуальная память

Лекция 8: Больше кешей, виртуальная память Примечание: это старая лекция, когда я преподавал в другом университете. Я думаю, что он лучше описывает концепции виртуальной памяти.

Дизайн кэша

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

Рекомендации по проектированию кэша

При разработке кеша следует учитывать три основных момента: Первые два имеют прямое влияние на производительность. Последнее оказывает влияние от стоимости процессора или наличия места для чипа для других целей. Для кешей L1 наиболее важными компонентами являются коэффициент пропусков. и задержка. Для машины для заказа мы хотели бы иметь доступ с одним циклом в кэш L1; в противном случае каждая загрузка вызывает по крайней мере один цикл остановки. Машины, вышедшие из строя, могут немного ослабить это требование, но инструкция пропускная способность будет страдать от каждого бита задержки в кеше.На частоту промахов и задержку влияют следующие факторы:
  • Размер кеша. Кеш большего размера будет иметь меньшую частоту промахов и более высокая задержка.
  • Ассоциативность. Кэш с большей ассоциативностью будет иметь меньший промах ставка и более высокая задержка. Более высокая задержка связана с дополнительными мультиплексорами, которые используются для реализации ассоциативности внутри наборов. Даже со слегка чем выше задержка, тем лучше иметь ассоциативный кеш.
  • Размер блока. Кэш с большим размером блока может иметь меньшую задержку, но процент промахов будет зависеть от типа рабочей нагрузки.Программы с высоким пространственная локализация будет успешной, но программы с плохой пространственной локализацией будут нет. Обратите внимание, что размер блока также влияет на количество транзисторов в кеш. Для блоков большего размера требуется меньше схем декодера и меньше бит тегов.

Уловки для создания лучших кешей

Дизайнеры придумали несколько уловок для уменьшения или уменьшения задержка кешей. Вот несколько:
  • Конвейерные кеши. Некоторые части кеша могут быть конвейерными. Таким образом, кэш с многоцикловой задержкой может доставить блок кеша на каждый цикл.Задержка любого доступа к кешу остается неизменной, но пропускная способность увеличивается, потому что новый доступ может начинаться в каждом цикле; мы не нужно ждать завершения одного доступа перед выдачей нового доступа. Конвейерный кеш имеет два вида задержек:
    1. Время доступа. Это количество времени, которое проходит от время записи адресных строк до времени доступности данных.
    2. Время цикла. Это минимальное время, между которым могут быть инициированы два доступа.
  • Банковские организации. Кэш можно разделить на несколько банков , каждый из которых имеет кэш меньшего размера. У этого есть два преимущества:
    1. Множественные обращения к кешу могут быть выполнены в том же цикле, что и пока они ссылаются на разные банки.
    2. Каждый банк имеет меньшую задержку доступа, поэтому доступ к кэшу может будь немного быстрее.
  • Многопортовые кеши. Кэш может быть расширен дополнительными битовыми строками для предоставить несколько портов.Кэш может иметь, скажем, два порта чтения и один порт записи. порт. Таким образом, два чтения могут быть инициированы в одном цикле, независимо от того, проблемы конфликта, поднятого хранением тайников. Многопортовые кеши дороже по площади и задержке, так что есть компромисс.
  • Кэш с виртуальным адресом. Одна вещь, о которой мы так не говорили far — это преобразование адресов, но в системе с виртуальной памятью (т. е. любой современная высокопроизводительная система) виртуальные адреса должны быть преобразованы в адреса физической памяти.Эта трансляция адресов находится на критическом пути для доступа к кешу, если теги в кеше получены из физических адреса. Другой вариант — использовать виртуальные адреса для получения тегов. Таким образом, мы можем начать доступ к кешу раньше, используя виртуальный адрес. Обратной стороной является то, что два разных процесса могут отображать один и тот же виртуальный адрес. в два разных физических места, поэтому процессор должен очистить кеш при переключении контекста или сохраните информацию о процессе в тегах.
  • Кеши трассировки.Кэш трассировки — это особый вид кеша инструкций. Мы знаем, что кеши работают лучше всего, когда много местности. По сути, кэш трассировки принимает поток инструкций и делает его более локальным. Инструкции хранятся как трасс и в кэше трассировки. Это, они хранятся в том порядке, в котором они были получены, а не в порядке в котором они появляются в памяти. Наряду с хорошим предсказателем ветвления Кэш трассировки может значительно увеличить пропускную способность выборки инструкций. Pentium 4 использует кэш трассировки микроопераций, чтобы поддерживать высокую скорость выборки при высоком тактовые частоты.

Пример

Предположим, мы строим заказной процессор по 130-нм технологии, для которого мы хотим иметь очень высокую тактовую частоту, чтобы продавать больше процессоров. Мы решили иметь небольшой кэш данных размером 8 КБ, чтобы минимизировать задержку. Мы хотим кеш для одноциклового доступа. Мы можем выбирать между следующими конфигурации:
# наборов в банке Размер блока Ассоциативность Время доступа Время цикла Процент промахов # Банки
128 64B Прямое сопоставление 690 л.с. 242 л.с. 10.3% 1 64 64B 2 пути 898 л.с. 300 пс 7,5% 1 128 16B 4-ходовой 906 л.с. 302 л.с. 6.5% 1 32 64B Прямое сопоставление 603 л.с. 201 шт. 10,3% 4
Какой кэш является лучшим выбором с точки зрения производительности? К несчастью, ответ неясен и зависит от другой информации, которой у нас пока нет.-12) = 1,1 ГГц. Предположим, идеальный кеш (т.е. без промахов на all) дает IPC, равный 1.0, и единственным фактором является частота промахов кеша. влияющие на IPC. Предположим, что каждый промах в кэше приводит к штрафу в 60 нс, а 20% от все инструкции являются инструкциями памяти. Штраф за промах в 60 нс означает на 66 циклов с тактовой частотой 1,1 ГГц. Количество циклов задержки на выполнение инструкции для промахов в кэш будет 66 * 0,065 * 0,2 = 0,858, поэтому новый CPI равен 1,858. Тогда новый IPC будет 1 / 1.858 = 0.538. Количество инструкций в секунду (IPS), что является наиболее важным показателем производительности, равно 0.-12) 1,5 ГГц. Но процент промахов выше, значит IPC будет ниже. Штраф за промах 60 нс означает 90 циклов для тактовой частоты 1,5 ГГц. ИПЦ составляет 1 + 90 * 0,103 * 0,2 = 2,854, поэтому IPC составляет 0,350. Таким образом, IPS составляет 0,350 * 1,5 миллиарда = 525 миллионов. инструкций в секунду. Хм. Так что процессор с более высокой тактовой частотой на самом деле немного хуже представление. Но все же, как вы думаете, какой из них будет продаваться лучше?

Категоризация упущений в иерархии памяти

Прежде чем продолжить, давайте рассмотрим причины, по которым пропуски пропускаются. в тайниках.Эти причины верны на любом уровне иерархии памяти, из регистров на диск. Их называют «3 C» кеш-памяти. пропускает:
  1. Обязательно. Обязательные промахи — это промахи, которые не могли можно избежать, например, первого доступа к элементу. Холодный старт промахи — это обязательные промахи, которые случаются при первом запуске программы. Данные должны пройти через всю иерархию памяти, прежде чем они смогут помещаются в кэш и используются процессором.
  2. Вместимость . Отсутствие емкости происходит, когда размер кеша меньше рабочий набор блоков или страниц в программе. Кеш не может содержать все блоки, поэтому некоторые из них выселяются только для того, чтобы их вернуть позже.
  3. Конфликт . Конфликтные промахи вызваны блоком политика размещения. Кэш с прямым отображением наиболее подвержен ошибкам из-за конфликта. Несмотря на то, что рабочий набор блоков может быть меньше кеша, два блока, которые сопоставляются с одним и тем же блоком, будут вызывать промахи.Полностью ассоциативные кеши невосприимчивы к ошибкам из-за конфликта. Происходящие промахи в ассоциативно-множественном кэше, которого не было бы в эквивалентном полностью ассоциативный кеш — это конфликтные пропуски.
Обратите внимание, что эти 3 C распространяются не только на системы памяти, но и на другие области компьютера. наука. Промахи из-за конфликта аналогичны столкновениям в хеш-таблицах. Система базы данных, которая пытается сохранить большую часть своих структур в памяти, будет иметь обязательные пропуски при первом запуске. 3 C применяются напрямую к предикторам ветвления.

Повышение производительности кэша

Здесь мы обсуждаем три метода повышения производительности кешей:
  • Неблокируемые кеши
  • Аппаратная предварительная загрузка
  • Предварительная загрузка программного обеспечения

Неблокирующие кеши

Мы предположили, что каждый промах в кэше вызывает циклы остановки. Тем не мение, этого не должно быть в случае процессора, который работает не по порядку. Предположим, что есть промах в кэше L1, но данные находятся в L2 кеш. Неблокирующий кэш L1 может справиться с промахом, одновременно позволяя последующим доступам к данным происходить вне очереди.Когда данные наконец готово, соответствующая загрузка может выполняться. Если доступ к оскорбительный элемент не стал узким местом в потоке данных, без остановки возможно, понадобились циклы. В любом случае циклы остановки из-за промахов в кеше будет уменьшено. Эта оптимизация увеличивает сложность кеша. контроллер, так как ему, возможно, придется обрабатывать несколько обращений к памяти одновременно. Неблокирующие кеши обычно полезны только для кешей L1, так как задержка между кэшем L2 и памятью настолько велика, что циклы остановки будут быть неизбежным при ограниченной ПДОДИ.

Аппаратная предварительная выборка

Идея предварительной выборки состоит в том, чтобы извлечь элемент из памяти и сохранить это в буфере задолго до того, как процессор запросит элемент. Товар может быть блоком кэша данных или блоком выборки. Вот некоторые примеры:
  • Буферы потока команд. В потоке инструкций обычно отображается большой объем предсказуемой местности. Некоторые процессоры получают два блока из кеша инструкций, потребляя одну и сохраняя другую в специальный буфер.Если следующий блок выборки находится в буфере, он может быть доступ осуществляется немедленно в следующем цикле, минуя кэш инструкций. Увеличение емкости буфера может повысить полезность буфер потока инструкций.
  • Буферы потока данных. Многие программы читают элементы данных из нескольких данных потоки. Например, вспомните рассмотренный нами код умножения матриц. в более раннем классе. Есть очень регулярные обращения к трем потокам: два для чтения и один для письма. Предварительно выбирая потоки данных, задержка доступа к основной памяти может быть уменьшена.Даже доступы с низкой пространственной локальностью могут быть предварительно выбраны, если их шаги регулярны. Палачарла и Кесслер обнаружили, что восемь потоковых буферов могут избежать 50% до 70% всех промахов в кэше разделенного I + D 128 КБ.
  • Предварительная выборка связанных структур данных. Связанные структуры данных, такие поскольку связанные списки и двоичные деревья могут быть предварительно загружены, даже если они размещены в памяти нерегулярно. Основная идея — использовать указатели в структуре данных, чтобы инициировать предварительную выборку. Эта идея ограничена и имеет наиболее полную утилиту с помощью компилятора или программиста.

Программная предварительная выборка

Некоторые ISA предоставляют подсказку предварительной выборки инструкции, которые направляют процессор, чтобы начать доступ к данным с определенного адреса задолго до данные необходимы. Есть два типа подсказок предварительной выборки:
  • Зарегистрируйте подсказки предварительной выборки. Предварительная выборка загружает данные в регистр.
  • Подсказки предварительной выборки из кэша. Предварительная выборка загружает данные в блок кеша.
Любой из видов подсказок может быть либо с ошибкой , либо с с ошибкой , Это означает, что доступ либо может, либо не может привести к сбою страницы.Предварительная выборка без сбоев позволяет выполнять предварительную выборку с конца массивов и делать работа компилятора проще.

Распространенной идиомой является указание подсказок предварительной выборки как загрузок в регистр 0, где Считается, что регистр 0 всегда содержит нулевое значение. Таким образом, ISA не изменяется, и инструкция предварительной выборки не влияет на предыдущие версии архитектуры.

Компиляторы часто используют развертку цикла для использования инструкций предварительной выборки. Таким образом, предварительная выборка с большой задержкой может быть конвейерной через несколько итераций. петли.

Рот и Сохи изучали предварительную выборку указателя перехода для связанных структур данных. Идея состоит в том, чтобы вставить дополнительные поля в каждый узел связанных данных. структура, указывающая на другие узлы, которые должны быть предварительно загружены, когда это узел доступен. Была проведена значительная работа над алгоритмами, чтобы эффективно размещать инструкции предварительной выборки.

Виртуальная память

Давайте поднимемся на пару уровней в иерархии памяти. Виртуальная память идея использования основной памяти в качестве кеша для хранения огромного адресного пространства на вторичном хранилище, например на жестких дисках.Поскольку DRAM дороги относительно для жестких дисков, это имеет тот же смысл, что и использование кешей SRAM для Основные воспоминания DRAM. Однако есть важные различия между эти две схемы:
  • Микроархитектура все еще должна иметь очень быстрый доступ к кешу, поэтому хранение таких вещей, как теги виртуальных адресов в DRAM, не годится. Нам нужно выполнять преобразование виртуальных адресов так же быстро, как и обращения к кешу L1.
  • Хотя промах кэша L2 может быть в 100 раз дороже, чем L1 попадание в кеш, ошибка страницы виртуальной памяти (т.э., промах) больше вроде 50,000 раз дороже, чем промах кэша L2. Таким образом, нам нужно много умнее избегать промахов. К счастью, у нас гораздо больше времени, чтобы подумайте, как избежать промахов. Эта работа обычно делегируется Операционная система. Уровень промахов в системах виртуальной памяти составляет около 0,0001%, в отличие от 1-10% для кешей. Довольно хорошо, да? Нет, я бы предпочел 1000 пропусков кэша L1, чем ошибка 1 страницы.
  • Размер виртуальной памяти определяется шириной адресов процессор может генерировать, но размер кеша ограничен более непосредственные технологические ограничения, такие как площадь чипа и задержка.
  • Виртуальная память разделяет диски с файловыми системами. Фактически виртуальный память может быть реализована поверх файловой системы или вместе с файлом система.

Основная идея

Основная идея заключается в том, что каждому процессу предоставляется свой виртуальных адресное пространство , отдельно от других процессов и потенциально больше доступной основной памяти. Некоторые концепции:
  • Физические страниц памяти сопоставлены виртуальным страницам, которые хранится либо в памяти, либо на диске.Например, виртуальный адрес 0x89ab может храниться в памяти по физическому адресу 0x12ab или где-то еще в в физической памяти или на диске. Для наших целей мы будем считать, что страницы имеют фиксированный размер, например 512 байт.
  • Когда процесс выдает ссылку на память, он делает это с виртуальным адрес. Этот адрес преобразуется процессором в физический адрес, или вызывает ошибку страницы , потому что соответствующая страница не находится в физической памяти. В этом случае некоторая страница в памяти заменяется на правая страница с диска и выполнение продолжается.
  • Теперь процессу нехватка памяти намного сложнее, и это также трудно одному процессу затоптать адресное пространство другого процесса. Емкость и защита обеспечивается виртуальной памятью.
  • ЦП все еще может работать в реальном режиме без преобразования адресов. Это необходимо для реализации операционных систем. Какой-то странный приложения также могут работать в реальном режиме.

Организация виртуальной памяти

Аналогичным образом виртуальную память можно охарактеризовать на высоком уровне. чтобы кэшировать организацию со следующими четырьмя вопросами:
  1. Размещение блока .Где можно разместить блок в оперативной памяти? В кэшах у нас было прямое отображение, набор ассоциативных и полностью ассоциативных. У полностью ассоциативного типа был самый низкий процент промахов, но он был самым дорогим, так что он никогда не использовался. Однако с виртуальной памятью цена промаха настолько высок, что не имеет значения, занимает ли полное ассоциативное время больше времени, даже если мы не можем вести поиск параллельно, как это делаем аппаратно. Таким образом, полностью ассоциативный — единственный вариант для виртуальной памяти.
  2. Идентификация блока .Как найти блок, если он в основная память? Это проблема трансляции адресов. Следующие могут использоваться техники:
    • Таблица страниц содержит записи для каждого виртуального блок, дающий физический адрес этого блока, если он отображается. Для этого требуется много места для хранения, которое должно храниться в основной памяти.
    • Таблица перевернутых страниц — это хеш-таблица, только столько записей, сколько страниц основной памяти. это меньше, чем таблица страниц.
    • Резервный буфер трансляции — это структура на процессор, похожий на кэш, который хранит недавно выполненные адресные переводы, чтобы большинство переводов можно было выполнить в скорость кеш-памяти L1, в отличие от скорости основной памяти. Резервный буфер трансляции кэширует физические адреса виртуальных адресов, а также информацию о том, виртуальная страница грязная.
  3. Замена блока . Какой блок нужно заменить на странице вина? Практически все операционные системы заменяют наименее использованный блок.Опять же, хотя истинный LRU стоит дорого в обслуживании, он намного дешевле. чем позволяет даже небольшое увеличение количества промахов.
  4. Стратегия записи . Что происходит при записи? Стратегия всегда обратная запись с грязным битом, потому что стоимость сквозной записи слишком высоко.

% PDF-1.3 % 53 0 obj> эндобдж xref 53 75 0000000016 00000 н. 0000002340 00000 н. 0000002474 00000 н. 0000001796 00000 н. 0000002515 00000 н. 0000002639 00000 н. 0000003040 00000 н. 0000003211 00000 н. 0000003271 00000 н. 0000003462 00000 н. 0000011124 00000 п. 0000011511 00000 п. 0000011874 00000 п. 0000012059 00000 п. 0000012248 00000 п. 0000019547 00000 п. 0000019916 00000 п. 0000020234 00000 п. 0000020287 00000 п. 0000020438 00000 п. 0000021609 00000 п. 0000022575 00000 п. 0000023218 00000 п. 0000024390 00000 п. 0000025440 00000 п. 0000026259 00000 п. 0000027258 00000 п. 0000028253 00000 п. 0000028435 00000 п. 0000029194 00000 п. 0000029988 00000 н. 0000030742 00000 п. 0000031540 00000 п. 0000032281 00000 п. 0000032415 00000 п. 0000033232 00000 н. 0000033747 00000 п. 0000033935 00000 п. 0000038169 00000 п. 0000040165 00000 п. 0000040636 00000 п. 0000044934 00000 п. 0000045110 00000 п. 0000045679 00000 п. 0000045860 00000 п. 0000047504 00000 п. 0000047676 00000 п. 0000047738 00000 п. 0000048101 00000 п. 0000048284 00000 п. 0000048355 00000 п. 0000048436 00000 п. 0000048513 00000 п. 0000048622 00000 н. 0000048678 00000 н. 0000048802 00000 п. 0000048858 00000 п. 0000048974 00000 п. 0000049075 00000 п. 0000049179 00000 п. 0000049235 00000 п. 0000049372 00000 п. 0000049427 00000 н. 0000049519 00000 п. 0000049635 00000 п. 0000049729 00000 п. 0000049784 00000 п. 0000049839 00000 п. 0000049969 00000 н. 0000050024 00000 н. 0000050148 00000 п. 0000050203 00000 п. 0000050329 00000 п. 0000050385 00000 п. 0000050501 00000 п. трейлер ] >> startxref 0 %% EOF 56 0 obj> поток xb«b« Ȁ

CacheFlow — Истекшие документы

CacheFlow — Документы с истекшим сроком эксплуатации

книга

Идентификатор статьи: 151104

calendar_today

Обновлено:

Продукты

Программное обеспечение CacheFlow Appliance

Показать больше Показывай меньше

Разрешение

В следующих PDF-файлах указаны ключевые даты для платформ и программного обеспечения, которые достигли конца срока продажи, обслуживания или окончания жизненного цикла продукта (они перечислены по номерам модели / версии).

Вложения

EOL-HW-CacheFlow-2019-03-04.pdf скачать приложение
Обратная связь

палец вверх да

thumb_down Нет

АД КЭШОВ — философия

Вопросы:

1.Что такое кеширование и почему меня это волнует?

2. Не мог бы я просто сделать всю мою систему памяти из самого быстрого компонента?

3. Что такое «промах»? «Ударить»? В чем разница между I-cache и D-cache?

4. Что такое кэш L2?

5. Как кэширование влияет на изученную мной простую 5-ступенчатую модель конвейера DLX?

6. Как долго мы на самом деле разговариваем?



1. Что такое кеширование и почему меня это волнует?

Кэширование — это то, как мы заставляем работать большие воспоминания.Неважно, из чего вы делаете свою память, всегда будет что-то более быстрое и дорогое, из чего вы могли бы сделать свою память. Создание большой памяти из самого быстрого компонента без ограничений нереально, поэтому мы делаем большую память из относительно недорогих компонентов, которые «достаточно быстры». Делаем их «достаточно быстрыми» с кешами.

Кеши позволяют нам использовать небольшое количество быстрых (более дорогих) компонентов, чтобы приблизиться к скорости памяти, полностью состоящей из более быстрых компонентов.



2. Не мог бы я просто сделать всю мою систему памяти из самого быстрого компонента?

Да, но это довольно глупо. Представим, что мы хотим создать компьютер с 32 МБ памяти, и вместо использования обычной, относительно медленной 60 или 70 нс DRAM мы собираемся купить 32 МБ действительно дорогой 12 нс SRAM.

Просто сделав это, мы

1 сделали портативную систему невозможной (SRAM очень низкая плотность, поэтому вместо одного чипа 8 SIMM вам понадобится где-то между 64 и 256 256 фишек)
2 действительно увеличили энергопотребление системы ( Чипы SRAM потребляют меньше, чем DRAM, но есть их намного больше)
3 сделал хороший обогреватель / грелку для ног (больше мощности = больше тепла)
4 преобразовал банк памяти за 120 долларов в память за 12000 долларов банк (SRAM тоже дороже)

Вот наблюдение.SRAM — не самый быстрый компонент. Мы могли бы намного лучше справиться с регистрами. 32 МБ регистров — это всего лишь 8 миллионов дополнительных 32-битных регистров. Тогда мы действительно готовим (буквально!). Удачи с этим.

Но если мы вернемся к первой системе и поместим кэш L2 на 256 КБ SRAM между ЦП и 32 МБ DRAM, мы сможем получить производительность, которая будет ближе к машине со всей памятью SRAM, чем к машине только с DRAM. На самом деле мы можем очень близко подойти к производительности машины, используя только более быстрый тип памяти большую часть времени.Путем дальнейшего увеличения кеша (например, до 1 МБ кеша) или путем размещения дополнительных уровней кеша (например, путем размещения одного или двух небольших, очень быстрых кешей на ЦП, а затем внешнего кеша в том же пакете или прикрепленного к нему). быстрая внешняя шина) разница для большей части (не для всего) кода незначительна.

Кеши работают, потому что большая часть доступа ЦП к памяти локальная. Небольшой плотный цикл может полностью уместиться в кэше инструкций ЦП. Если это так, он будет выполняться полностью из кеша на максимальной скорости.



3. Что такое «промах»? «Ударить»? В чем разница между I-cache и D-cache?

Промах в кэше описывает состояние, при котором ЦП пытается получить доступ к блоку в памяти, которого нет в кэше и который должен быть загружен с более низкого уровня (например, внешнего кеша или основной памяти) в иерархии памяти. «Попадание» в кеш — это противоположное явление: «попадание» происходит потому, что блок находится в кэше и его не нужно загружать. Дизайн кэша направлен на оптимизацию возможности попаданий и минимизацию штрафов, понесенных в случае промаха (промахи неизбежно будут).Оптимизация кэша (программного обеспечения) сосредоточена на написании программного обеспечения, удобного для кеширования, которое обращается к памяти таким образом, чтобы совпадения происходили как можно чаще (например, путем линейного доступа к памяти).

«I-cache» относится к «кэшу инструкций». D-cache относится к кешу данных. Они относятся к дизайну с разделенным кешем, в котором существуют два небольших кеша, один исключительно для машинного кода инструкций, а другой — исключительно для кэширования данных. Скомпилированные двоичные файлы программного обеспечения обычно состоят из двух или более «сегментов», которые отделяют код от данных (глобальные и статические переменные, константы и т. Д.).), так что при непосредственном исследовании существует большое пространственное разделение между фактическим кодом инструкции и жестко закодированными данными, а динамически распределенные данные, конечно, отделены (пространственно, в памяти) от двоичного кода, созданного компилятором.

Кроме того, «местность» имеет тенденцию отдавать предпочтение либо коду, либо данным. Разделив кеш, мы пытаемся создать два пула кеша, которые являются очень локальными для своего соответствующего содержимого (инструкций и данных соответственно).

Некоторые другие термины, которые будут использоваться в техническом разделе:

«блок» — блок относится к минимальному «фрагменту» памяти, который может храниться в месте кэша.Кеши разбиты на блоки. «Блок» может состоять из 4 или 8 слов или так далее.

«частота промахов» — СРЕДНЯЯ частота обращений к данным, которые не находятся в кеше.

«штраф за промах» — количество времени, необходимое для обслуживания промаха (например, чтение или запись в память по запросу)

«заполнить» — означает загрузить данные в кеш

«LRU» — LRU означает «недавно использованный». Это схема управления содержимым кеша. Простая версия LRU может иметь бит «ссылки» на каждом блоке кэша, который очищается каждые 30 циклов, но который устанавливается каждый раз при доступе к блоку.Если ЦП необходимо отбросить один из блоков кеша (например, кеш заполнен, но ЦП необходимо загрузить данные не в кеш), он проверит и увидит, не имеют ли какие-либо блоки кеша ссылки, но установит и отбросит один из те. Таким образом, все, на что недавно ссылались, не будет отброшено, поскольку будет установлен бит, на который была сделана ссылка.

«FIFO» — FIFO означает «первым пришел — первым ушел». Это еще одна схема замены. FIFO работает как очередь. В схеме FIFO самый старый блок — это тот, который отбрасывается.Это может быть неоптимально. Рассмотрим случай цикла — на индекс цикла можно ссылаться только в конце цикла, но ДОЛЖЕН использоваться каждый цикл. Однако он инициализируется в начале цикла и, следовательно, попадает в кеш до того, как будут выполнены какие-либо итерации цикла. В схеме FIFO цикл, который добавляет два массива, отбрасывает индекс цикла, прежде чем отбрасывать предыдущие значения массива (которые никогда не будут использоваться снова!).

«Второй шанс FIFO» — измененная политика FIFO, которая помещает сбросы на третий уровень кеша.Если на них снова ссылаются, они быстро перезагружаются в кеш. Многие системы виртуальной памяти используют систему FIFO второго шанса для имитации политики LRU без дополнительных затрат. (Это относится к кешам жертв, см. Ниже.)



4. Что такое кэш L2?

Иерархия кеша описывается с точки зрения его удаленности от процессора. Есть некоторые терминологические противоречия в отношении кешей L0 / L1. Кэш «L0» обычно представляет собой очень и очень маленький кэш (порядка 128 бит), к которому функциональные блоки получают доступ напрямую.Некоторые процессоры не имеют кеш-памяти L0. Кэш «уровня 1» обычно представляет собой «кеши инструкций и данных разделения на кристалле» или «унифицированный кэш на кристалле». Обычно это от 4k до 32k. Это быстрые встроенные кэши, которые работают с тактовой частотой процессора и могут быть доступны за один цикл. Кэш «уровня 2» обычно внешний и намного больше — от 256 КБ до 2 МБ, а иногда и больше. Обычно к ним обращаются с частотой, кратной тактовой частоте ЦП, поскольку они являются внешними по отношению к ЦП и работают с тактовой частотой платы, а не с тактовой частотой ЦП (большинство ЦП работают внутри с частотой, кратной внешней частоте — Pentium с частотой 120 МГц работает на частоте 66 МГц. внешне).

Есть некоторые вариации. Некоторые процессоры упакованы в так называемый «многокристальный модуль» (MCM) или «корпус с двумя полостями», где две микросхемы могут быть установлены внутри большого керамического корпуса, который взаимодействует с системной платой. Эти кэши обычно работают с тактовой частотой внутреннего процессора или близкой к ней (например, на или 1/2), но быстрее, чем внешняя тактовая частота. Поместив кэш L2 в один и тот же корпус, разработчики микросхем могут иметь более широкую шину для кэш-памяти, увеличивать ее тактовую частоту и т. Д., Сохраняя при этом относительно менее дорогой тип памяти и не влияя на размер кристалла кристалла своего процессора (физическая область чип).Иногда их называют кешами L1.5. Pentium Pro от Intel и Alpha 21164a имеют двухчиповые пакеты, которые содержат кэш L2 (256 КБ или 512 КБ и 96 КБ, соответственно). С другой стороны, они обычно дороже. Pentium II от Intel использует сменную плату, которая содержит ЦП и некоторую высокоскоростную кэш-память вместо двухчипового модуля.

Могут быть другие уровни кеша, L3, L4 и так далее. Обычно они становятся все медленнее, чем дальше от ЦП, и, соответственно, больше.Один из способов взглянуть на «основную память» (например, 32 МБ в приведенной выше системе) — это как очень, очень большой кеш для фактической адресуемой памяти (которая представляет собой хранилище на магнитных носителях, выделенное для файла подкачки виртуальной памяти).



5. Как кэширование влияет на изученную мной простую 5-ступенчатую модель конвейера DLX?

Пятиступенчатая труба DLX

ПРИНЕСТИ F из памяти — кеш инструкций
ДЕКОДИРОВАТЬ D читает значения из регистров, декодирует входы.
ВЫПОЛНЯТЬ Икс выполняет операцию или вычисляет адрес
ОБЪЕМ ПАМЯТИ M читает / сохраняет в / из памяти — кеш данных
ЗАПИСЬ W записывает результат в dest. регистр

«Пятиступенчатый конвейер», о котором H&P говорят в первых трех главах своей книги, — это большая жирная ложь. Почему? Поскольку этап MEMORY, который выбирает операнды из памяти при загрузке или записывает в память в хранилище, завершается за один цикл.В мире нет оперативной памяти, из которой ЦП мог бы читать за один такт.

Как обсуждалось в главе 3, конвейерная архитектура интересна только потому, что она обеспечивает высокую пропускную способность инструкций — в идеале вы выполняете одну инструкцию за каждый цикл после того, как ЦП был «загружен» (все стадии заполнены), несмотря на то, что любой инструкция требует 5 циклов для завершения. Поскольку время выполнения одной инструкции относительно неважно для потока программы, ЦП с высокой пропускной способностью приближается к производительности гораздо более быстрого ЦП, который может выполнить всю отдельную инструкцию за тот же промежуток времени (например,g., конвейерный DLX с 5 этапами / 5 тактов на команду, работающий на частоте 100 МГц, приближается к производительности DLX с 1 этапом / 1 тактовым сигналом, работающим на частоте 500 МГц).

Что касается введения DLX, они предполагают, что кэш может быть прочитан или записан за один цикл. Предполагаемый кеш является разделенным кешем инструкций / данных, потому что в противном случае между этапами FETCH и MEMORY возникнут структурные конфликты, поскольку они будут обращаться к одному и тому же ресурсу. Они также предполагают, что кеш-память упадет, потому что вам никогда не придется иметь дело с задержкой памяти из-за промаха.

На самом деле, когда у вас промах в кэше, вы останавливаете этот этап до тех пор, пока память не будет готова, и вы можете получить / записать значение из / в память. Это может быть от четырех до дюжины тактовых циклов для данных, находящихся в кэшах уровня 2 и кэшей уровня 3, до десятков циклов для загрузки данных из основной памяти в локальные кеши до миллионов или десятков миллионов циклов, если данные были выгружается из основной памяти на диск системой виртуальной памяти. Число циклов, потраченных впустую из-за промаха кэша, растет по мере увеличения скорости процессора относительно основной памяти, а скорость процессора увеличивалась намного быстрее, чем скорость DRAM, за последние пятнадцать лет.Для ЦП Alpha 21164a с тактовой частотой 600 МГц ожидание основной памяти может стоить сотни циклов ЦП, во время которых ЦП останавливается.

Но поскольку по сути ничего не происходит, пока ЦП останавливается в ожидании памяти, * модель * конвейера действительна, если иметь в виду тот факт, что «счетчик часов» для фрагмента кода, анализируя его поведение конвейера, действительно счетчик «логических» часов, проведенных инструкциями в конвейере. Он представляет собой производительность в «лучшем случае». Фактическая производительность для небольшого участка кода будет намного, намного хуже, чем производительность для аналогичного участка кода, который амортизирует затраты на загрузку кешей (что приводит к пропуску кеша при первых считанных из памяти данных, но при загрузке кешей в процессе и предотвращение будущих промахов) над длинным набором кода, поскольку последний получит выгоду от кеширования.

По сути, единственное изменение, заключающееся в том, что добавление связанных с памятью задержек к трассировке некоторого кода через конвейер DLX будет заключаться в установке дюжины или около того остановок во время периодических этапов ПАМЯТИ, но не всех из них. Поскольку доступ к инструкциям обычно является линейным, единственное время, когда вы увидите остановку в памяти во время FETCH, — это после длинного перехода (по сути, из кэшированного блока) или на границах блока (обязательные промахи, см. Ниже).



6. Как долго мы на самом деле разговариваем?

Согласно H&P, количество циклов остановки, вызванных промахом кеша для выборки из основной памяти, дается:

Циклы остановки памяти = IC * AvgRefs * MR * MP

где IC — это количество команд для исполняемого кода, AvgRefs — это усредненные ссылки на данные для каждой команды (что на самом деле представляет собой процент загрузок и сохранений от общего количества команд), MR — это частота промахов, как определено выше, а MP — это промахнуться с пенальти.

Однако это не говорит нам того, что мы хотим знать, если нас действительно волнует, сколько циклов один промах в кэше на самом деле стоит нам. Однако мы можем вывести его, описав поток инструкций, состоящий из одной инструкции, загрузки или сохранения, которые, как мы утверждаем, отсутствуют. потом

киоски = 1 * 1 * 1 * МП

киоски = MP

все же не очень информативно, но более конкретно. Проблема в том, что MP варьируется в зависимости от того, насколько далеко в иерархии находятся данные.Обычно нас волнует, находится ли он в основной памяти. MP может составлять от 12 до 100 циклов в этом случае, возможно, меньше в некоторых агрессивных системах (например, POWER2 имеет очень низкую тактовую частоту и, следовательно, страдает пропорционально меньше, потому что разрыв между скоростью процессора и памяти довольно мал). Обратите внимание, что это все еще зависит от скорости процессора и разницы в скорости между процессором и основной памятью, которая является переменной.

Некоторые процессоры используют различные уловки, чтобы заставить запись в основную память выполняться в фоновом режиме, позволяя процессору продолжать обработку и делая промах записи намного менее катастрофичными с точки зрения производительности, чем чтение.Это обсуждается ниже.

Также существуют некоторые архитектуры (называемые многопоточными архитектурами, обратите внимание, что «поток» в этом случае не относится к высокоуровневой концепции «потоков», используемой в языках программирования или к процессам на уровне операционной системы, а скорее к низкоуровневому. потоки команд, поступающие либо из нескольких процессов, либо динамически извлекаемые из потока команд планировщиком), которые не останавливаются, когда у них есть невыполненный запрос памяти. Вместо того, чтобы приостанавливать работу ЦП до тех пор, пока блок не станет доступным в кэше, многопоточная архитектура переключается на другой поток инструкций до тех пор, пока этот блок не будет считан из памяти.Производительность отдельного потока кода для многопоточных архитектур не лучше, чем для обычных архитектур, но общая пропускная способность должна быть выше, потому что «мертвые циклы», потерянные при доступе к памяти, больше не существуют и могут использоваться другими потоками команд. У MTA есть свои проблемы, и они не рассматриваются в CMSC411.

На вопрос о том, насколько нам это больно, лучше ответить «сильно». Вот почему нам в первую очередь понадобились кеши.





основной текст Авторские права Роберт Роджерс, 1997 г. графические изображения Copyright 1997 Роберт Роджерс Авторские права на HTML-код, 1997, Элизабет Роджерс и Роберт Роджерс.Таблицы в разделе IV были получены из нескольких графиков и таблиц из книги Хеннесси и Паттерсон «КОМПЬЮТЕРНАЯ АРХИТЕКТУРА: КОЛИЧЕСТВЕННЫЙ ПОДХОД». Разрешается предоставить эти страницы в их исходной неизмененной форме в Интернете для образовательных целей. Их нельзя переиздавать или включать на CDROM, диск или другие носители, или в какие-либо опубликованные работы без явного разрешения правообладателей (включая книги с часто задаваемыми вопросами).

Общие методы для правильного кэширования API

Кэширование — отличное решение для обеспечения того, чтобы данные обслуживались там, где их нужно обслуживать, и с уровнем эффективности, который лучше всего подходит для клиента и сервера.Тем не менее, кэширование часто рассматривается как волшебная палочка, которая может повысить эффективность и сократить общие затраты на данные как для клиентов, так и для серверов. Это заблуждение; только правильное применение кэширования дает вам эти преимущества.

Сегодня мы рассмотрим некоторые общие рекомендации по кешированию. Имейте в виду, что передовая практика полностью субъективна — то, что может быть передовой практикой в ​​конкретной реализации, может не подходить для другой. При этом, следуя этим общим рекомендациям, вы максимально приблизитесь к точному, эффективному и полезному процессу кэширования.

Одним из первых и наиболее важных шагов, которые должен предпринять любой разработчик при развертывании системы кэширования, является учет предполагаемых затрат на кэширование. Стоимость в этом смысле не является денежной, а относится к стоимости на сервере и общему влиянию на клиентские и серверные ресурсы в совокупности.

Для каждого кэша требуется какое-то локальное хранилище. Контент должен быть загружен в какую-то память, и поэтому эта память не может использоваться для других процессов, нужд и функций.Даже небольшой объем данных, выбранных для кэширования, может привести к израсходованию довольно больших блоков памяти, поскольку этот кешированный контент кэшируется во всей экосистеме микросервисов, API-интерфейсов и поставщиков.

Хотя это меньшая проблема для контента, который не очень часто меняет состояние, это также может быть усилено данными, которые действительно меняют состояние. Поскольку постоянное изменение состояния перемещается в кэш и является «движущейся целью» для точности, кэширование может быть очень дорогостоящим. Соответственно, оцените, что на самом деле нужно кэшировать, и оцените влияние на ресурсы в наиболее логическом смысле.

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

Функционально существует два разных типа кеша: , кэширующий клиент, , где данные хранятся локально, и , серверный кеш, , где данные хранятся на сервере. Существует гибридное решение для кэширования, но это добавляет сложности и накладных расходов к системе кэширования в целом. То, где вы размещаете фактический кеш, на практике имеет почти такое же значение, как , какой вы кешируете.

Кэширование клиента , где данные хранятся локально для клиента, служит для ограничения стоимости данных, понесенных пользователем. Все, что может понадобиться пользователю, на что обычно ссылаются и что подходит для кеша, может храниться локально, уменьшая потребность в дополнительных вызовах. Хотя это, очевидно, повышает эффективность для пользователя, это также дает импульс для сервера, поскольку контент запрашивается реже.

Кэширование сервера также снижает затраты, но в первую очередь ориентировано на стоимость сервера.Сохраняя вызовы в кеше, на сам API не влияют повторные вызовы — не требуется никакой обработки, никаких манипуляций, никаких преобразований; все это готово в одной форме для универсального использования. В отличие от клиентского кеширования, серверное кеширование снижает затраты для сервера, но не для клиента — время ожидания может быть уменьшено, поскольку на самом деле не требуется никаких вычислений, но вызов все равно должен выполняться.

Hybrid — лучшее из обоих миров, но он также обеспечивает снижение затрат для обеих сторон.Также существует тот факт, что у клиента может не хватить места для локального кеша, особенно при использовании тонких клиентов. В таких случаях, когда кэшированные данные имеют большой размер, кэширование клиента должно иметь приоритет.

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

Это кажется упрощенным случаем, но есть даже случаи, когда приложения помещают токены API и тому подобное в кеш, а затем сбрасывают эту информацию в отчеты об ошибках. Совместное использование этого отчета об ошибке может раскрыть много информации об услуге и снизить общую безопасность и защищенность системы.

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

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

Это настолько чрезвычайно важный аспект кеширования, что Рой Филдинг, отец парадигмы RESTful, говорил как о важности кэширования в REST (это необходимо), так и о важности обеспечения точности этого кеша:

«Преимущество добавления ограничений кэша заключается в том, что они могут частично или полностью исключить некоторые взаимодействия, повышая эффективность, масштабируемость и производительность, воспринимаемую пользователем, за счет уменьшения средней задержки ряда взаимодействий.Однако компромисс заключается в том, что кэш может снизить надежность, если устаревшие данные в кэше значительно отличаются от данных, которые были бы получены, если бы запрос был отправлен непосредственно на сервер ».

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

Например, может показаться разумным кэшировать статус заказа клиента на уровне сервера. В конце концов, как часто эта информация меняется? Однако если мы будем следовать этой логике, то увидим, что кеширование такого рода данных бесполезно — статус заказа не только динамичен по содержанию, он динамичен по объему. Возможно, правда, что статус заказа в среднем не меняется быстро, но как насчет сезонных циклов, когда одновременно могут быть активны десять или пятнадцать заказов? Что будет, если заказ задерживается — обновляете ли вы статус или оставляете статус открытым? Как часто пользователь проверяет статус заказа, а не просто ждет обновления в приложении?

В конечном итоге эти аспекты необходимо учитывать, и нужно задать вопрос — стоит ли кэширование этой информации, где бы мы ее ни кешировали? Если это не стоит затрат, не кэшируйте его.

Это тоже не всегда очевидно — некоторые дела не так уж просты. А как насчет идентификатора пользователя? На первый взгляд имеет смысл, что сервер кэширует идентификатор пользователя для подключенных клиентов. Однако в дизайне RESTful нет состояния, которое нужно иметь — кэширование идентификатора пользователя во время сеанса и его использование для установления связи во время этого клиентского соединения сродни созданию состояния, что противоречит концепции дизайна RESTful.

Это особенно верно, если клиент уже отправляет идентификатор пользователя с каждым запросом — если данные поступают, и сервер проверяет эти данные по кешу и выбрасывает их, если они не изменились, тогда какой смысл в их хранении в любом случае? Разве это не тот же поток, что и отсутствие кеширования данных, но с дополнительными накладными расходами, которые кеш добавляет по своей сути?

Microsoft предлагает некоторые знания по этой теме в своей документации по Azure.Хотя это в значительной степени мнение Microsoft, это действительно достойная практика для большинства приложений — не все реализации будут иметь одинаковые требования, но львиная доля приложений будут. Microsoft предлагает использовать как кэш, так и систему для постоянного хранения данных:

«Рассмотрите возможность кэширования данных, которые часто читаются, но редко изменяются (например, данные, для которых доля операций чтения выше, чем операций записи). Однако мы не рекомендуем использовать кеш в качестве надежного хранилища важной информации.Вместо этого убедитесь, что все изменения, которые ваше приложение не может позволить себе потерять, всегда сохраняются в постоянном хранилище данных. Это означает, что если кеш недоступен, ваше приложение может продолжать работать, используя хранилище данных, и вы не потеряете важную информацию ».

Большая часть проблем, связанных с кешированием, сводится к работе с типами контента. Существует скользящая шкала между «это кешируемое» и «это не кешируемое», которое зависит как от того, кто владеет кешем, так и от его назначения.Например, что-то вроде CSS сайта абсолютно кешируется и его следует кешировать. Фактически, большая часть работы сайта может быть кэширована с помощью гибридного подхода — локально кэшированные файлы могут хранить основную информацию о пользователе, которая затем может использоваться в запросах, а кеш сервера может хранить CSS, HTML и т. Д. Для обслуживания.

Более сложное кэширование начинается тогда, когда мы начинаем рассматривать контент, который является динамическим, но только в течение длительного периода времени. Статус API — это то, что в идеале всегда представляет собой одно значение.Хотя есть случаи, когда API может не работать или обновляться, это, безусловно, самые необычные ситуации по сравнению с просто работающим API, и поэтому состояние может быть легко кэшировано.

Тогда есть вещи, которые нельзя кэшировать ни по какой причине. Такие вещи, как пароли, не следует кэшировать на сервере. Сопоставление сервера (то есть сопоставленные расположения данных за пределами общедоступных конечных точек) никогда не должно существовать на клиенте. Базовые, основанные на здравом смысле предположения о кэшируемости должны постоянно проверяться, проверяться или отклоняться.

Как только это произойдет в большом масштабе, мы сможем увидеть набор правил, устанавливаемых в отношении нашего кэшированного содержимого. Это выходит за рамки простого наблюдения за тем, следует ли что-то кэшировать или какова относительная стоимость — как только у нас будет твердое представление о том, где на самом деле находится «линия» для кеширования, мы можем применить эти правила глобально и начать создавать своего рода внутренние фреймворк для аудита нашего кеша.

Это, пожалуй, самый важный «последний» шаг в реализации кэширования. Рекомендуется постоянно проверять и проверять структуру кэширования, предположения и практические реализации.То, что имело смысл для кодовой базы год назад, может не иметь смысла сегодня и, безусловно, не будет иметь смысла через пять лет. Это особенно важно при многократном развитии кодовой базы, поскольку кэширование контента, которого больше не существует, может быть огромными накладными расходами на обработку, несмотря на то, что в конечном итоге никакие данные не сохраняются.

Рассмотрим ситуацию, в которой микросервис кэширует статус доставки каждого заказа. Чтобы снизить стоимость сервера, разработчик перешел на использование внешнего API, предоставляемого курьером по доставке, для запроса статуса доставки.Первоначально кеш работал, сначала проверяя кеш, проверяя статус заказа в устаревшей таблице статуса заказа, а затем возвращая этот статус клиенту. В новом рабочем процессе запрос пользователя пересылается во внешний API, который захватывает данные, а затем возвращает их клиенту, который кэширует контент локально.

Что случилось со старыми кэшированными данными о статусе заказа? Что случилось с кодом, который запрашивал устаревшую таблицу? Если он все еще существует, у нас есть проблема — кодовая база усложняется, и можно по-прежнему вызывать конечную точку, несмотря на то, что данные больше не являются полезными.Более того, если мы не удалили кеширование из службы, возможно, данные будут храниться до некоторой произвольной точки завершения данных, поскольку нет ничего, что указывало бы на то, что данные больше не являются полезными. Для нескольких тысяч заказов это может привести к огромным ежедневным эксплуатационным расходам, которые просто не имеют никакой ценности.

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *